219. Contains Duplicate II
题目描述
找到数组中重复的数字,绝对距离是不是小于k的
思路
用hash表记录出现过的数字和下标,出现重复数字的时候下标相减是绝对距离。
官方解法
竟然和我这解法一样QAQ
时间和空间占用的百分比都不是很漂亮,可能因为使用了STL
代码
class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
map<int,int> m;
for(int i=0;i<nums.size();++i){
if(m.find(nums[i])!=m.end()){
if(i-m[nums[i]]<=k)
return true;
}
m[nums[i]]=i;
}
return false;
}
};