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 i and j is at most k.

 1 class Solution {
 2 public:
 3     bool containsNearbyDuplicate(vector<int>& nums, int k) {
 4         if (nums.empty()) {
 5             return false;
 6         }
 7         unordered_map<int, int> map;
 8         for (int i = 0; i < nums.size(); i++) {
 9             if (map.find(nums[i]) != map.end() && i - map[nums[i]] <= k) {
10                 return true;
11             }
12             map[nums[i]] = i;
13         }
14         return false;
15     }
16 };

 

posted @ 2015-06-08 23:37  huj690  阅读(137)  评论(0编辑  收藏  举报