Leetcode题库 - 存在重复元素(java语言版)

题目描述:

给定一个整数数组,判断是否存在重复元素。

如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。

示例 1:

输入: [1,2,3,1]
输出: true

示例 2:

输入: [1,2,3,4]
输出: false

示例 3:

输入: [1,1,1,3,3,4,3,2,4,2]
输出: true

本题有两种思路都很容易理解:

   第一种思路:用set,存储,判断当集合中有这个元素时返回true,证明有重复元素,集合中没有就添加进去继续比较,直到循环结束,证明不存在重复元素。

   第二种思路,暴力for,双重for循环进行判断,如果两个元素相等就返回true,循环结束则证明不存在重复元素。

代码如下:

第一种方法:

     int []a = new int[]{1,2,3,1};
//        第一种方法。set
        Set<Integer> set = new HashSet <> (  );//用来存储未重复的元素,当重复时用contains判断,返回false,否则true。
        for (int i = 0;i<a.length;i++){
            if (set.contains ( a[i] )){//若集合中有的话就返回true
                System.out.println("存在重复的元素");
                break;
            }else {//没有就加入到集合中,继续执行
                set.add ( a[i] );
            }
        }
//        循环结束,就证明没有重复元素
        System.out.println("不存在重复的元素");

执行结果:

执行用时:

第二种方法:

for(int i =0;i<a.length;i++){
            for (int j=i+1;j<a.length;j++){
                if (a[i]==a[j]){
                    System.out.println("存在重复元素");
                    break;
                }
            }
        }
        System.out.println("不存在重复元素");

 执行用时:

 总结:这道题很简单,推荐使用第一种方法,时间复杂度小。

2019-3-12

发布了43 篇原创文章 · 获赞 6 · 访问量 6667

猜你喜欢

转载自blog.csdn.net/weixin_37850160/article/details/88426925