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;
原文地址:https://www.cnblogs.com/apex-wzw/p/14683888.html