码迷,mamicode.com
首页 > 其他好文 > 详细

219. Contains Duplicate II

时间:2018-11-03 21:53:56      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:integer   image   思路   数组   []   new   return   distance   for   

一、题目

  1、审题

  技术分享图片

  2、分析

    判断数组中是否存在两个值相同的元素,下标之差 <= k

 

二、解答

  1、思路:

    使用 Set

    将数组的前 k 个元素添加入 Set,若有添加失败情况,则返回 true;

    之后每次将 set 中的前面第 i - k - 1 个元素从 Set 中去除,并添加入新的元素,若添加失败,则返回 true;

    最终,返回false;

    public boolean containsNearbyDuplicate(int[] nums, int k) {
        Set<Integer> set = new HashSet<>();
        for (int i = 0; i < nums.length; i++) {
            if(i > k)   // distance is k, in fact set could store K+1 nums
                set.remove(nums[i - k - 1]);
            if(!set.add(nums[i]))
                return true;
        }
        return false;
    }

 

219. Contains Duplicate II

标签:integer   image   思路   数组   []   new   return   distance   for   

原文地址:https://www.cnblogs.com/skillking/p/9902162.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!