判断一个 int 向量里是否有相同的数 并且距离在k之内 (2)

class Solution {
public:
    bool containsNearbyDuplicate(vector<int>& nums, int k) {
          map<int,char> exit_last;
          for(int i=0;i<nums.size();i++){
            if(exit_last.find(nums[i]) == exit_last.end()){
                 exit_last.insert(pair<int,char>(nums[i],i));
            }
            else{  
                 if(i - exit_last[nums[i]] <= k)
                       return true;
                 exit_last[nums[i]] = i;
            }
         } 
         return false;
    }
  
};

  思想 : 本格int上次出现的下标,判断跟本次出现的距离  如果小于k 就是true 否则是false

posted @ 2016-12-26 17:06  *桔子*  阅读(195)  评论(0编辑  收藏  举报