Contains Duplicate III
2015-06-03 20:21
453 查看
Given an array of integers, find out whether there are two distinct indices i and j in
the array such that the difference between nums[i] and nums[j] is
at most t and
the difference between i and j is
at most k.
class Solution
{
public:
bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t)
{
if (nums.size() < 2 || k == 0)
return false;
deque<int> windows_deq;
multiset<long> windows;
//维护一个长度小于等于k的滑动窗口
for (int i = 0; i < nums.size(); i++)
{
if (windows.size() > k)
{
int num = windows_deq.front();
windows_deq.pop_front();
windows.erase(windows.find(num));
}
//这句很关键,num[i]与num[j]的差值最大为t,也就是说num[j]的最小值为num[i]-t
auto it = windows.lower_bound((long)nums[i] - (long)t);
if (it == windows.end() || *it > (long)nums[i] + (long)t) {
// not found
windows_deq.push_back(nums[i]);
windows.insert(nums[i]);
}
else
return true;
}
return false;
}
};
the array such that the difference between nums[i] and nums[j] is
at most t and
the difference between i and j is
at most k.
class Solution
{
public:
bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t)
{
if (nums.size() < 2 || k == 0)
return false;
deque<int> windows_deq;
multiset<long> windows;
//维护一个长度小于等于k的滑动窗口
for (int i = 0; i < nums.size(); i++)
{
if (windows.size() > k)
{
int num = windows_deq.front();
windows_deq.pop_front();
windows.erase(windows.find(num));
}
//这句很关键,num[i]与num[j]的差值最大为t,也就是说num[j]的最小值为num[i]-t
auto it = windows.lower_bound((long)nums[i] - (long)t);
if (it == windows.end() || *it > (long)nums[i] + (long)t) {
// not found
windows_deq.push_back(nums[i]);
windows.insert(nums[i]);
}
else
return true;
}
return false;
}
};
相关文章推荐
- poj 3250 Bad Hair Day 单调栈
- Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost.
- hdu - 1104 Remainder (bfs + 数论)
- Error: Failed to launch instance "win7": Please try again later [Error: No valid host was found. ].
- An animation block that calls the subviews updateConstraints method
- 帝国留言板管理员回复发送EMAIL通知客户
- 219. Contains Duplicate II
- ARC中Retain Cycle揭秘
- 217. Contains Duplicate
- AEAI DP_V3.4.0_20150601升级说明
- postfix+extmail+dovecot+ courier-authlib 实现公网邮件服务器
- 解决sublimeText3无法安装插件问题 -- There are no packages available for installation
- Leetcode Problem.217 —Contains Duplicate
- 使用NSSearchPathForDirectoriesInDomains等获取路径的方法时的注意事项
- tools:context=".MainActivity的作用
- AIX下新建账户
- 控制台应用程序的Main方法
- * failed to start daemon *
- KVM 介绍(3):I/O 全虚拟化和准虚拟化 [KVM I/O QEMU Full-Virtualizaiton Para-virtualization]
- VS2010调试 --指南 Reference from : http://blog.csdn.net/kingzone_2008/article/details/8133048