Leetcode 220. Contains Duplicate III
2018-02-28 15:21
381 查看
原题:
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.
解决方法:
定义一个set,用其保存数组中的最近k个数,然后从中找符合要求的目标数,如果有,则返回true。
代码:
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.
解决方法:
定义一个set,用其保存数组中的最近k个数,然后从中找符合要求的目标数,如果有,则返回true。
代码:
bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t) { set<long> s; for(int i = 0; i < nums.size(); i++){ if ( i > k) s.erase(nums[i-k-1]); auto it = s.lower_bound((long)nums[i] - t); if (it != s.end() && (*it - nums[i]) <= t) return true; s.insert(nums[i]); } return false; }
相关文章推荐
- leetcode 220. Contains Duplicate III
- 【C++】leetcode 220. Contains Duplicate III
- 220. Contains Duplicate III [leetcode]
- Leetcode 220. Contains Duplicate III (Medium) (cpp)
- Leetcode-220. Contains Duplicate III
- 【LeetCode】220. Contains Duplicate III
- leetcode 220. Contains Duplicate III
- [LeetCode]--220. Contains Duplicate III--(Binary Search Tree)
- Leetcode 220. Contains Duplicate III
- leetcode 220. Contains Duplicate III---java
- LeetCode 220. Contains Duplicate III
- leetcode 220. Contains Duplicate III
- LeetCode 220. Contains Duplicate III
- [leetcode]220. Contains Duplicate III
- [LeetCode] 220. Contains Duplicate III 包含重复元素 III
- leetcode 220. Contains Duplicate III
- [LeetCode]220. Contains Duplicate III
- LeetCode 220. Contains Duplicate III(检查重复)
- [Leetcode] 220. Contains Duplicate III 解题报告
- LeetCode *** 220. Contains Duplicate III (set::lower_bound)