217. Contains Duplicate

来源:互联网 发布:nbiot网络架构 编辑:程序博客网 时间:2024/06/06 11:42

1.题目

    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.

2.分析

   这道算法题,我最开始理解为和字符串查重一样,但是这是一个整数类型的数组查重,所以还是不一样,但是涉及数组的问题,都可以使用工具类Arrays的sort对数组先进行排序,然后对排序后的数组进行操作就方便很多。

3.实现

   public class Solution {
    public boolean containsDuplicate(int[] nums) {
        // 这种题,查是否存在重复元素,先排序,后检查
        if(nums==null||nums.length==0||nums.length==1){
            return false;
        }
        int len = nums.length;
        
        Arrays.sort(nums);
        for(int i=0;i<len;i++){
           
            if((i-1>=0&&nums[i]==nums[i-1])||(i+1<len&&nums[i]==nums[i+1])){
                return true;
            }
        }
        return false;
    }
}

4.总结

  像这种类似的算法题,还是不困难呢,处理好边界,不使用辅助空间,先排序好就可以做。当然也可以利用Set这个容器的特性,其中不存储重复元素,所以若存储重复元素,根据返回值就可以解题。

原创粉丝点击