LeetCode

[LeetCode] 217. 存在重复

2018-04-10  本文已影响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;
    }
}
上一篇下一篇

猜你喜欢

热点阅读