【LeetCode】第38天 - 217. 存在重复元素

217. 存在重复元素

  • 题目描述
  • 解题思路
  • 代码实现

题目描述

【LeetCode】第38天 - 217. 存在重复元素_第1张图片

解题思路

第一种思路:
先对nums数组排序,然后再在遍历nums,如果nums[i] == nums[i + 1],则返回true。

第二种思路:
利用Set集合的性质(不存储相同值),遍历一次nums集合并set.add(),如果add失败,则存在相同元素,返回true。

这里是Set系列集合的源码分析:【攻克java集合系列(三)】java集合中的Set系列集合全面分析

代码实现

class Solution {
    public boolean containsDuplicate(int[] nums) {
        Set<Integer> set = new HashSet<Integer>();

        for(int num:nums){
            if(!set.add(num)){
                return true;
            }
        }
        return false;
        // 以下为思路一:
        // Arrays.sort(nums);
        // int length = nums.length;
        // for (int i = 0; i < length - 1; i++) {
        //     if (nums[i] == nums[i + 1]) {
        //         return true;
        //     }
        // }
        // return false;
    }
}

你可能感兴趣的:(LeetCode每日一题,leetcode,排序算法,算法,Set集合)