leetcode之Contains Duplicate II 问题
来源:互联网 发布:后缀date域名 编辑:程序博客网 时间:2024/05/22 07:34
问题描述:
Given an array of integers and an integer k, find out whether there are two distinct indicesi andj in the array such that nums[i] = nums[j] and the absolute difference betweeni andj is at most k.(题目的大意为给定一个整数数组和一个整数K,有两个不同的索引所指向的值是相同的,但是这两个索引本身之差不超过k)
问题来源:Contains Duplicate II (具体地址:https://leetcode.com/problems/contains-duplicate-ii/#/description)
思路:本题当然可以采用暴力解决,相信很容易就想到了。
方法一:首先找到数组中每一对相等的数,然后判断它们的索引之差是否小于等于K,只要找到这样一对就行了,返回的值就是true,否则返回false喽;
方法二:采用滑动窗口来解决,学过计算机网络的人应该觉得很熟悉吧。没学过也没事,我简单粗暴的讲讲,本题中,窗口里放着一些数值,窗口里能存放的数字是有一定的限度的,不能超过这个值,其次,这个窗口有个前沿有个后沿,可以理解为连个指针p1和p2,假设p1指向前沿,p2指向后沿,刚开始没达到窗口阈值的时候,只动前沿(即指针p1即可),当达到阈值的时候,那就要动p2来动态调整整个窗口了,维持着整个窗口值不变。可能有点晕,下面结合代码讲解一下。
代码:
这段代码里相当于有两个指针限制着整个窗口的容量,一个指向前沿,一个指向后沿,窗口中存放的数一旦i超过k之后,就要删除最早添加进来的数,即nums[i - 1 - k].如果当前值nums[i]添加不进集合set,那么说明这个数已经存在于窗口中了,所以才会加不进去啊。
- leetcode之Contains Duplicate II 问题
- LeetCode之Contains Duplicate II
- leetcode之Contains Duplicate II
- leetcode之Contains Duplicate II
- leetcode之Contains Duplicate II
- leetcode之Contains Duplicate 问题
- [LeetCode]Contains Duplicate II
- [LeetCode] Contains Duplicate II
- leetcode Contains Duplicate II
- LeetCode Contains Duplicate II
- [leetcode] Contains Duplicate II
- LeetCode Contains Duplicate II
- 【leetcode】Contains Duplicate II
- leetcode--Contains Duplicate II
- [leetcode]Contains Duplicate II
- [leetCode] Contains Duplicate II
- LeetCode: Contains Duplicate II
- LeetCode Contains Duplicate II
- Codeforces 819B. Mister B and PR Shifts
- String使用equals和==比较的区别
- highcharts相对全面(1)折线
- 架构师之路-svn篇卷1
- 压缩感知学习笔记2
- leetcode之Contains Duplicate II 问题
- 半平面交——学习笔记
- HTML5样式、链接和表格
- JavaScript-BOM(浏览器对象模型)
- C++对拍
- android BroadcastReceiver 广播
- JNI学习积累之一 ---- 常用函数大全
- NPM的作用以及具体使用
- GalaxyOJ-721 (公式)