美文网首页
每日一道算法题 - 存在重复元素

每日一道算法题 - 存在重复元素

作者: 辉_ace | 来源:发表于2021-12-11 20:22 被阅读0次

问题

给定一个数组,判断是否存在重复元素。 如果存在,则返回true。不存在,则返回false。

思路

利用set自动去重。在向set添加元素的时候,会返回是否添加成功。利用该特性,遍历数组,逐一向set中添加,如果全部添加成功,则最终结果返回false。一旦某个元素添加set失败,则中止循环,最终结果返回true。

也可以先对原数组排序,接着比较是否存在相同元素。 另外也可以利用set自动去重功能直接添加元素,最后比较原数组和set大小。 但是这两种方式都没有第一种效率高。

实现

public class ContainsDuplicate {

    public static void main(String[] args) {

        int[] nums = new int[]{1,1,1,3,3,4,3,2,4,2};
        System.out.println(containsDuplicate(nums));
    }

    private static boolean containsDuplicate(int[] nums) {
        Set<Integer> set = new HashSet<>();
        for (int num : nums) {
            if (!set.add(num)){
                return true;
            }
        }
        return false;
    }
}

相关文章

网友评论

      本文标题:每日一道算法题 - 存在重复元素

      本文链接:https://www.haomeiwen.com/subject/ejclfrtx.html