精华内容
下载资源
问答
  • 存在重复元素

    千次阅读 2018-05-25 19:06:03
    给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1] 输出: true示例 2:输入: [1,2,3,4] 输出: false解题...

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

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

    示例 1:

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

    示例 2:

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

    解题思路:

    以第一个数值为基准,遍历整个数组,只要出现重复元素,就返回true,如果一直没有,返回false。

    两种方法:

    第一种是用双指针实现双重循环,

        public static boolean containsDuplicate(int[] nums) {
        	if(nums.length<=0)//在执行之前,需要判断数组里面到底有没有数字
        		return false;
        	int a = 0;//以第一个元素作为基准
        	int flag = 0; 
        	for(int i=0;i<nums.length;i++){
        		a = nums[i];
    //    		System.out.println("a="+a);
    	        for(int j=i+1;j<nums.length;j++){
    	        	if(nums[j] == a){
    	        		flag++;
    	        		return true;//只要有一个重复的数字,立刻返回,否则会因为执行时间过长,导致超时错误
    	        	}
    	        }
    //	        System.out.println(flag);
            }
        	if(flag!=0)
        		return true;
        	else
        		return false;
        }

    第二种是利用哈希表

      创建一个set,依次对每个数组元素进行检查,如果又重复的,返回true,否则,把不重复的元素放入到set中

        	if(nums.length<=0)//在执行之前,需要判断数组里面到底有没有数字
        		return false;
        	HashSet<Integer> s = new HashSet<>();
        	for(int i=0;i<nums.length;i++){
        		if(!s.contains(nums[i])){
        			s.add(nums[i]);
        		}
        		else
        			return true;
        	}
        	return false;   	
        }

    展开全文
  • 存在重复元素.pdf

    2021-09-14 15:41:29
    存在重复元素.pdf
  • Java实现 LeetCode 217 存在重复元素

    万次阅读 多人点赞 2020-02-27 17:27:24
    217. 存在重复元素 给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 示例 1: 输入: [1,2,3,1] 输出: true 示例 2: 输入: [1...

    217. 存在重复元素

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

    如果任何值在数组中出现至少两次,函数返回 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

    class Solution {
        public boolean containsDuplicate(int[] nums) {
              Set<Integer> res = new HashSet<Integer>();
            for(int i:nums)
                res.add(i);
            return res.size()<nums.length?true:false;
        }
    }
    
    展开全文
  • Java实现 LeetCode 217 存在重复元素.pdf
  • java代码-LeetCode 217. 存在重复元素
  • 数组存在重复元素

    千次阅读 2018-04-06 12:50:03
    给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数应该返回 true。如果每个元素都不相同,则返回 false。思路:判断重复,首先就想到了Set,创建一个set,把每个数组元素放进去判断是否...

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

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


    思路:判断重复,首先就想到了Set,创建一个set,把每个数组元素放进去判断是否重复,


    解法一:判断重复,首先就想到了Set,创建一个set,把每个数组元素放进去判断是否重复,

    public boolean containsDuplicate(int[] nums) {
        	if(nums.length == 0)
        		return false;
        	Set<Integer> s = new HashSet<>();
        	for(int i = 0; i<nums.length; i++){
        		if(!s.contains(nums[i])){
        			s.add(nums[i]);
        		}
        		else{
        			return true;
        		}   		
        	}
            return false;	       	
            	
        } 

    解法二:还可以用双指针法,一个一个对比

    public boolean containsDuplicate_2(int[] nums) {
        		if(nums.length == 0  )
        			return false;
        	  	for(int i = 0; i < nums.length; i++){
        	  		for(int j = i+1 ;j < nums.length; j++){
        	  			if(nums[i] == nums[j])
        	  				return true;
        	  			
        	  		}
        	  		
        	  	}
            	return false;
        }


    展开全文
  • leetcode 219.存在重复元素II

    千次阅读 2020-01-05 11:33:38
    存在重复元素II 题目描述 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。 示例 1: 输入: nums = [1,2,3,1], k = 3 输出: ...

    leetcode 219.存在重复元素II

    题目描述

    给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。

    示例 1:

    输入: nums = [1,2,3,1], k = 3
    输出: true
    

    示例 2:

    输入: nums = [1,0,1,1], k = 1
    输出: true
    

    示例 3:

    输入: nums = [1,2,3,1,2,3], k = 2
    输出: false
    

    解题思路

    如果是判断数组中是否存在重复元素,很简单,直接采用异或的方法,该题是leetcode 217的升级版,查看题解点这里,需要判断两个重复数的下标是否小于等于k。那么我们采用的是建立哈希表的方法,记录每一个元素对应的下标,哈希表的key:value对应关系为 --》元素:下标,这样如果元素存在,判断当前下标和value相减的值是否小于等于k,如果是,那么直接返回true;如果大于k,那么就需要更新一下value的值,把value设置为当前的下标,因为不更新的话,后面再次出现相同的元素两者相减的值肯定大于k,所以需要用当前下标的值和下一次出现的元素的下标做比较。

    class Solution {
    public:
        bool containsNearbyDuplicate(vector<int>& nums, int k) {
            unordered_map<int, int> map;         // 哈希表存储对应关系
            for(int i=0; i<nums.size(); i++){
                if(map.find(nums[i]) == map.end()){      // 如果当前元素不存在,直接添加
                    map[nums[i]] = i;
                }
                else{
                    if(i-map[nums[i]] <= k){			// 判断是否小于等于k
                        return true;
                    }
                    else if(i-map[nums[i]] > k){		// 如果大于k,需要更新key对应的value值
                        map[nums[i]] = i;
                    }
                }
            }
            return false;
        }
    };
    

    欢迎大家关注我的个人公众号,同样的也是和该博客账号一样,专注分享技术问题,我们一起学习进步
    在这里插入图片描述

    展开全文
  • 算法题:存在重复元素

    千次阅读 2020-12-12 12:57:54
    给定一个整数数组,判断是否存在重复元素。 如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。 示例 1: 输入: [1,2,3,1] 输出: true 示例 2: 输入: [1,2,3,4] 输出: ...
  • Java实现 LeetCode 219 存在重复元素 II(二)

    万次阅读 多人点赞 2020-02-27 23:22:26
    219. 存在重复元素 II 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。 示例 1: 输入: nums = [1,2,3,1], k = 3 输出: ...
  • Java实现 LeetCode 220 存在重复元素 III(三)

    万次阅读 多人点赞 2020-02-28 15:12:59
    220. 存在重复元素 III 给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 ķ。 示例 1: 输入: nums = [1,2,3,1], k...
  • 217. 存在重复元素

    千次阅读 2019-04-18 15:17:03
    给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 示例 1: 输入: [1,2,3,1] 输出: true 示例 2: 输入: [1,2,3,4] ...
  • LeetCode-存在重复元素

    千次阅读 2018-05-05 16:09:54
    给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 class Solution: def containsDuplicate(self, nums): ""...
  • 判断集合中是否存在重复元素(我项目中的一个实际需求),需求如下: { 1, 2, 3, 5, 4, 3, 7, 2, 0, 1, 3, 2, 0, 2 } ------&amp;gt; 存在重复元素 { 1, 2, 3, 4, 5, 6}--------------------------------&amp;...
  • 给定一个整数数组,判断是否存在重复元素。 如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。 测试用例 示例 1: 输入: [1,2,3,1] 输出: true 示例 2: 输入: ...
  • java判断数组中是否存在重复元素

    千次阅读 2021-03-22 16:57:48
    java判断数组中是否存在重复元素 import java.util.HashSet; public class test2 { public static boolean cheakIsRepeat(int[] array) { HashSet<Integer> hashSet = new HashSet<Integer>(); for...
  • leetcode217. 存在重复元素(vip题)超简单

    千次阅读 多人点赞 2020-01-26 17:03:28
    给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 示例 1: 输入: [1,2,3,1] 输出: true 示例 2: 输入: [1,2,3,4] 输出: ...
  • 如何判定数组是否存在重复元素

    千次阅读 2016-06-27 16:44:16
    题目:假设数组 array 有 n 个元素,元素取值范围是 1~n,如何判定数组是否存在重复元素? 方法一:对数组进行排序(可以用效率比较高的排序算法,如快速排序、堆排序等),然后比较相邻的元素是否相同。时间复杂度...
  • 全排列—存在重复元素

    千次阅读 2012-10-04 18:51:18
    全排列问题,但是存在重复元素,比如babc,求全排列,要求全排列不能包含重复串 分析: 由于存在重复元素,经典的全排列-递归方式不能达到题目要求,可以在原有全排列的基础上加入判断,还要对所有元素首先进行一...
  • 哈希表//存在重复元素

    千次阅读 2018-11-24 13:42:13
    给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 示例 1: 输入: [1,2,3,1] 输出: true 示例 2: 输入: [1,2,3,4] ...
  • Leetcode-初级算法-存在重复元素

    千次阅读 热门讨论 2018-09-17 10:00:37
    给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 示例1 输入: [1,2,3,1] 输出: true 示例 2: ...
  • 如何判断数组是否存在重复元素

    千次阅读 2017-07-31 15:43:35
    假设数组a有N个元素,元素的取值为1~N,如何判断数组是否存在重复元素 方法一:对数组进行排序,然后比较相邻的元素是否相同。时间复杂度为O(nlogn),空间复杂度为O(1); 代码int comp(const void *a,const void *b)...
  • 因为Set集合中是不允许存在重复元素的 于是得到如下处理方式 /** * 列表中是否包含重复元素 * * @param list * @return */ public static boolean isRepeatList(List list) { if (list =
  • leetcode 217. 存在重复元素

    万次阅读 2020-07-29 16:30:16
    看了评论区之后,也没有发现特别巧妙的解法,要不然就是排序之后,比较相邻元素。 import java.util.HashSet; class Solution { public boolean containsDuplicate(int[] nums) { HashSet<Integer> hashSet...
  • 217.存在重复元素 描述 给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 示例 输入: [1,2,3,1] 输出: true ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 492,368
精华内容 196,947
关键字:

存在重复元素