判断给定数组里是否有重复元素。
一看到题目“重复元素”,我就立刻想到了哈希表
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;
利用集合无重复的性质,可以较为巧妙的解题
Set<Integer> tmp = new HashSet<>();
for (int i = 0; i < nums.length; i++) {
tmp.add(nums[i]);
}
return tmp.size() < nums.length;
对数字从小到大排序之后,数组的重复元素一定出现在相邻位置中
Arrays.sort(nums);
for (int i = 0; i < nums.length - 1; i++) {
if (nums[i] == nums[i + 1]) {
return true;
}
}
return false;
原文:https://www.cnblogs.com/apex-wzw/p/14683888.html