美文网首页LeetCode
[LeetCode] 217. 存在重复

[LeetCode] 217. 存在重复

作者: 拉面小鱼丸 | 来源:发表于2018-04-10 14:17 被阅读0次

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

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

原文

Given an array of integers, find if the array contains any duplicates. Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct.

JAVA

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

更优方法

class Solution {
    public boolean containsDuplicate(int[] nums) {
        for (int i = 1; i < nums.length; i++){
            int j =  i - 1;
            int k = nums[j+1];
            while(j > -1&& nums[j] > k){
                nums[j+1]=nums[j];
                j--;
            }
            nums[j+1] = k;
            if(j  > -1){
                if(nums[j] == nums[j +1]){
                    return true;
                }
            }
        }
        return false;
    }
}

相关文章

网友评论

    本文标题:[LeetCode] 217. 存在重复

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