未分類

Contains Duplicate

Contains Duplicate

Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct.

提示 解題應用
HashTable HashMap

Default:

1
2
3
func containsDuplicate(nums []int) bool {
}

解答思路:

檢查其陣列元元素是否每個都獨一無二,如果不是就回傳true,否則就回傳false,而想當然就是將不存在的值塞入HashTable中,直到發現該值存在在其中就回傳true,大致上是這樣。

程式碼解說:

一開始先初始化一個hashmap,接著在以迴圈一一取出元素時,判斷該值是否存在hashmap之中,如果存在就表示有兩個以上回傳true,否則就將其值同時放入key與value之中,直到都沒有發現有重覆的狀況才回傳false

1
2
3
4
5
6
7
8
9
hashTable := make(map[int]int)
for _, v := range nums {
_, ok := hashTable[v]
if ok {
return true
}
hashTable[v] = v
}
return false

完整程式碼:

1
2
3
4
5
6
7
8
9
10
11
func containsDuplicate(nums []int) bool {
hashTable := make(map[int]int)
for _, v := range nums {
_, ok := hashTable[v]
if ok {
return true
}
hashTable[v] = v
}
return false
}

總結:

檢查一陣列元元素是否每個都獨一無二,使用HashMap來做儲存並判斷其是否存在是很好的選擇。

分享到