220. 存在重复元素 III

 1 //用multimap就可以解决
 2 class Solution 
 3 {
 4 public:
 5     bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t) 
 6     {        
 7         if(nums.empty()) return false;
 8         multimap<int, int> mp;
 9         for(int i = 0; i < nums.size(); ++i) 
10         {
11             mp.insert({nums[i], i});
12         }
13 
14         for(auto it = mp.cbegin(); it != mp.cend(); ++it) 
15         {            
16             auto iter = it;
17             for(++iter; iter != mp.cend(); ++iter) 
18             {
19                 if(abs((long)iter->first - (long)it->first) > t) break;
20                 if(abs(iter->second - it->second) <= k) return true;
21             }
22         }
23         return false;
24     }
25 };

 

posted @ 2020-04-11 14:09  Jinxiaobo0509  阅读(138)  评论(0)    收藏  举报