滑动窗口-219. 存在重复元素 II-leetcode

219. 存在重复元素 II - 力扣(Leetcode)

对于这道题目,想到了用滑动窗口来解。

这道题目也是一道比较有意义的题目,对我来说。

因为在此之前,一直把滑动窗口当成了 双指针的一种特殊形式,所以用滑动窗口的时候,就用两个指针在哪里滑。

其实这道题目,我用两个指针在哪儿滑,感觉思路是对的,但是提交之后总有那么几个实例是错的,改进了好多次,没用。

最后,看了看题解,人家题解的滑动窗口用的是一个for循环,没用两个指针。

所以说,要灵活一点,做题目不要想着套魔板,对于理工科这一块儿,如果想着套魔板,就永远不会有创新。

代码很简单,一看就能看明白,恨的是我滑动窗口就非得想着用两个指针来做。

class Solution {
    public boolean containsNearbyDuplicate(int[] nums, int k) {
        Set<Integer> ooc=new HashSet<>();
        for (int i = 0; i < nums.length; i++) {
            if (i>k){
                ooc.remove(nums[i-k-1]);
            }
            if(!ooc.add(nums[i])){
                return true;
            }
        }
        return false;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_64744030/article/details/129656766