HOME/Articles/

Leetcode75-22

Article Outline

説明

  • 与えられた2つ配列から、片方だけにある要素を2次元配列に入れて返す

  • 原文

Given two 0-indexed integer arrays nums1 and nums2, return a list answer of size 2 where: answer[0] is a list of all distinct integers in nums1 which are not present in nums2. answer[1] is a list of all distinct integers in nums2 which are not present in nums1. Note that the integers in the lists may be returned in any order.

例題との相違点

  • 自分の回答(23ms)
    • ダブる要素などがあるため、配列をmapに直してkeyが存在するかどうかで判定した。
func findDifference(nums1 []int, nums2 []int) [][]int {
    isExistNum1 := make(map[int]bool)
    isExistNum2 := make(map[int]bool)

    resultNums1 := []int{}
    resultNums2 := []int{}

    for _, num := range nums1 {
        isExistNum1[num] = true
    }
    for _, num := range nums2 {
        isExistNum2[num] = true
    }

    for num, _ := range isExistNum1 {
        if isExistNum2[num] {
            delete(isExistNum1, num)
            delete(isExistNum2, num)
        }else{
            resultNums1 = append(resultNums1, num)
        }
    }

    for num, _ := range isExistNum2 {
        resultNums2 = append(resultNums2, num)
    }

    return [][]int{resultNums1, resultNums2}
}
  • 回答例(なし)

感想

  • 最速の回答例は、値が-1000~1000という制限を利用した限定的なものだった
  • 汎用的な回答で最もハイヤ委回答は同じ実装だった。