leetcode 219 存在重复元素II
一、题目描述
二、解题思路
可以用哈希表来记录数字出现的情况,键为数字,值为数字出现的最新下标。
遍历数组,如果当前字符已经出现,且两次下标差的绝对值小于等于k,则返回true,否则就更新对应数字对应的哈希值,
三、代码实现
时间复杂度:T(n)=O(n)
空间复杂度:S(n)=O(n)
class Solution {
public:bool containsNearbyDuplicate(vector<int>& nums, int k) {//哈希表unordered_map<int,int> hash;for(int i=0;i!=nums.size();i++){if(hash.count(nums[i])&&abs(hash[nums[i]]-i)<=k)return true;elsehash[nums[i]]=i;}return false;}
};