220. Contains Duplicate III
2017-01-17 15:17
351 查看
Given an array of integers, find out whether there are two distinct indices i and j in the array such that the absolute difference between nums[i] and nums[j] is at most t and the absolute difference between i and j is at most k.
class Solution { public: bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t) { int n=nums.size(); if(!n) return false; map<long,long> tmp; tmp[nums[0]]=0; int j=0; for(int i=1;i<n;i++) { if(i-j>k) tmp.erase(nums[j++]); auto a=tmp.lower_bound(nums[i]-t); if(a!=tmp.end() && a->first<=t+nums[i]) return true; tmp[nums[i]]=i; } return false; } };
相关文章推荐
- LeetCode *** 220. Contains Duplicate III (set::lower_bound)
- 220. Contains Duplicate III
- 220. Contains Duplicate III
- [LeetCode]220. Contains Duplicate III
- 220. Contains Duplicate III
- 220. Contains Duplicate III
- 220. Contains Duplicate III
- [leetcode]220. Contains Duplicate III
- LeetCode 220. Contains Duplicate III
- 220. Contains Duplicate III
- 220. Contains Duplicate III
- 217, 219,220. Contains Duplicate I, II, III
- leetcode 220. Contains Duplicate III
- 220. Contains Duplicate III
- LeetCode 220. Contains Duplicate III *****理解条件,查找表
- 220. Contains Duplicate III
- 【LeetCode】220. Contains Duplicate III
- 220. Contains Duplicate III
- [leetcode] 220. Contains Duplicate III 解题报告
- [LeetCode]217. Contains Duplicate&219. Contains Duplicate II&220. Contains Duplicate III