标签: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; }
标签:integer image 思路 数组 [] new return distance for
原文地址:https://www.cnblogs.com/skillking/p/9902162.html