码迷,mamicode.com
首页 > 其他好文 > 详细

Contains Duplicate II

时间:2015-06-19 00:07:36      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

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.

Tag:Array  Hash Table

class Solution {
public:
    bool containsNearbyDuplicate(vector<int>& nums, int k) {
       map<int,vector<int> > arrayMap;
       for(int i=0;i<nums.size();i++){
           if(arrayMap.count(nums[i])==0){
               vector<int> arrvec;
               arrvec.push_back(i);
               arrayMap.insert(pair<int,vector<int> >(nums[i],arrvec));
           }
           else{
               int length=arrayMap[nums[i]].size();
               if(i-arrayMap[nums[i]][length-1]<=k)//符合条件则返回
                    return true;
                else
                    arrayMap[nums[i]].push_back(i);
           }
       }
       return false;
    }
};


Contains Duplicate II

标签:

原文地址:http://blog.csdn.net/sxhlovehmm/article/details/46552995

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!