leetcode 217
Leetcode 217
题目描述
判断给定数组里是否有重复元素。
思路介绍
1.HashMap
一看到题目“重复元素”,我就立刻想到了哈希表
HashMap<Integer, Integer> indexForNums = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
if (indexForNums.containsKey(nums[i])) {
return true;
} else {
indexForNums.put(nums[i], i);
}
}
return false;
2.set
利用集合无重复的性质,可以较为巧妙的解题
Set<Integer> tmp = new HashSet<>();
for (int i = 0; i < nums.length; i++) {
tmp.add(nums[i]);
}
return tmp.size() < nums.length;
3.排序
对数字从小到大排序之后,数组的重复元素一定出现在相邻位置中
Arrays.sort(nums);
for (int i = 0; i < nums.length - 1; i++) {
if (nums[i] == nums[i + 1]) {
return true;
}
}
return false;