重複元素 1
題目:
給定一個整數數組,判斷是否存在重複元素。
For Example:
輸入: [1,2,3,1]
輸出: true
輸入: [1,2,3,4]
輸出: false
輸入: [1,1,1,3,3,4,3,2,4,2]
輸出: true
Solution:
class Solution {
public boolean containsDuplicate(int[] nums){
Set<Integer> set = new HashSet<Integer>();
for (int i = 0; i < nums.length; i++) {
if(set.contains(nums[i])){
return true;
}
set.add(nums[i]);
}
return false;
}
}
重複元素2
題目:
For Example:
輸入: nums = [1,2,3,1], k = 3
輸出: true
輸入: nums = [1,0,1,1], k = 1
輸出: true
輸入: nums = [1,2,3,1,2,3], k = 2
Solution:
class Solution {
public boolean containsNearbyDuplicate(int[] nums, int) {
// 聲明一個哈希表, 大小不超過 k
HashSet<Integer> set = new HashSet<>();
// 周遊數組
for (int i = 0; i < nums.length; i++) {
if(set.contains(nums[i])){
return true;
}
// 插入元素
set.add(nums[i]);
if (set.size() > k) {
// 移除前面的元素
set.remove(nums[i-k]);
}
}
return false;
}
}