(leetcode)Contains Duplicate II

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> sum;
 5         for(int i = 0;i < nums.size() ; i++)
 6         {
 7             if(sum.find(nums[i]) != sum.end())
 8             {
 9                 if(i - sum[nums[i]] <=k ) 
10                     return true;
11                 else
12                     sum[nums[i]] = i;
13             }
14             else
15             {
16                 sum[nums[i]] = i;
17             }
18         }
19         return false;
20     }
21 };

 

posted @ 2015-08-07 11:33  sunalive  Views(125)  Comments(0)    收藏  举报