Given an array of integers and an integer k, find out whether there there are two distinct indices i and j in the array such that nums[i] = nums[j] and the difference between iand j is at most k.
1 class Solution { 2 public: 3 bool containsNearbyDuplicate(vector<int>& nums, int k) { 4 map<int,int> m; 5 for(int i=0;i<nums.size();i++){ 6 if(m.find(nums[i])==m.end()) 7 m[nums[i]]=i; 8 else{ 9 if(i-m[nums[i]]<=k) 10 return true; 11 else 12 m[nums[i]]=i; 13 } 14 } 15 return false; 16 } 17 };
时间: 2024-10-10 19:46:07