首页 > 其他 > 详细

判断是否存在重复元素的各种代码整理

时间:2020-12-13 20:41:15      阅读:31      评论:0      收藏:0      [点我收藏+]

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

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

最简洁的代码: set函数去重

class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        return len(nums) != len(set(nums))

java 一行:

 public boolean containsDuplicate(int[] nums) {
            return Arrays.stream(nums).distinct().count() < nums.length;
    }

时空复杂度都很高

 

脑洞绝活类:

“随机算法,掷10万次2个骰子,万一发现有一次一样的就有,10万次都不一样就当做不存在重复吧,特殊案例再处理一下。”

bool containsDuplicate(int* nums, int numsSize){
    int i;
    int a,b;
    srand(time(0));
    if(0 == numsSize||1 == numsSize ){
        return false;
    }
    for(i=0; i<100000; i++){
        a = rand()%numsSize;
        b = rand()%numsSize;
        
        if(a!=b && (nums[a] == nums[b])){
            return true;
        }
    }
    return 9999 == nums[numsSize-1];
        
}

java自带去重

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;
    }
}

java正常解法:

class Solution {
    public boolean containsDuplicate(int[] nums) {
        Arrays.sort(nums);
        int n = nums.length;
        for (int i = 0; i < n - 1; i++) {
            if (nums[i] == nums[i + 1]) {
                return true;
            }
        }
        return false;
    }
}

 

判断是否存在重复元素的各种代码整理

原文:https://www.cnblogs.com/ranzhong/p/14128638.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!