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...