281.LeetCode | 220. 存在重复元素 III
Posted 每天一个开发小知识
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了281.LeetCode | 220. 存在重复元素 III相关的知识,希望对你有一定的参考价值。
每天一个开发小知识
01
在整数数组 nums 中,是否存在两个下标 i 和 j
使得 nums [i] 和 nums [j] 的差的绝对值小于等于 t
且满足 i 和 j 的差的绝对值也小于等于 ķ
如果存在则返回 true,不存在返回 false
// lower_bound 返回第一个大于等于 key 的元素的迭代器
set<long> s;
set<long>::iterator iter = s.lower_bound(key)
class Solution {
public:
bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t) {
set<long> s;
for (int i = 0; i < nums.size(); ++i)
{
auto iter = s.lower_bound(long(nums[i]) - t);
if (s.end() != iter && *iter <= (long(nums[i]) + t))
{
return true;
}
s.insert(nums[i]);
if (k < s.size())
{
s.erase(nums[i - k]);
}
}
return false;
}
};
以上是关于281.LeetCode | 220. 存在重复元素 III的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode 220. 存在重复元素 III (Contains Duplicate III)
Leetcode No.220 存在重复元素 III(桶排序)