LeetCode 217 重複的數

2021-08-19 06:16:37 字數 1365 閱讀 8504

tips:

1 兩次迴圈 

2 arrays.sort

3 hashset set 

模擬arraylist 陣列

set.contains(i)

set.add

list.get(idx)

給定兩個陣列,寫乙個方法來計算它們的交集。

例如:給定

nums1 =[1, 2, 2, 1], nums2 =[2, 2], 返回[2, 2].

注意:1 對於這種相同的元素取出來的用 arraylist

對於相同元素只取出來一次的用 hashset

思路都可以用 雙指標的方式

1 先排序

2 雙指標走,相同的話,都提前,否則根據情況走i 走j

不重複

public int intersection(int nums1, int nums2) 

}int array = new int[set.size()];

int k = 0;

for(integer i : set)

return array;

}public boolean binarysearch(int array, int k)else if(array[mid] < k)else

}return b;

}

重複 雙指標法 比較好理解

class solution else if(nums1[i] < nums2[j])else

}int result = new int[list.size()];

int idx = 0;

for(integer k : list)

return result;

}}

用hashmap的解法

1 hashmapmap

2 map.containkey(key)

map.get(key) 取到val值;類似的arraylist 也有get方法

public int intersect(int nums1, int nums2)

listlist = new arraylist();

for (int i = 0; i < nums2.length; i++)

int result = new int[list.size()];

int idx = 0;

for(integer k : list)

return result;

}

LeetCode217 存在重複值

將陣列元素作為k鍵,對應下標作為v值存入雜湊表,當陣列中存在重複的元素的時候,存入雜湊表的時候會出現丟鍵的情況,因為雜湊表的k值是不允許重複的。所以說,將資料元素存入雜湊表後嗎,比較兩者的長度,如果長度一致,表示沒有重複元素,返回false,如果長度不一致,代表存在重複元素,返回true值 clas...

leetcode 217 存在重複元素

給定乙個整數陣列,判斷是否存在重複元素。如果任何值在陣列中出現至少兩次,函式返回 true。如果陣列中每個元素都不相同,則返回 false。示例 1 輸入 1,2,3,1 輸出 true 示例 2 輸入 1,2,3,4 輸出 false 示例 3 輸入 1,1,1,3,3,4,3,2,4,2 輸出 ...

LeetCode217 存在重複元素

題目 如果任何值在陣列 現至少兩次,函式返回 true。如果陣列中每個元素都不相同,則返回 false。class solution object def containsduplicate self,nums type nums list int rtype bool flag 0 if nums...