220.leetcode Contains Duplicate III (medium)[]
来源:互联网 发布:通用顶级域名有 编辑:程序博客网 时间:2024/05/07 10:04
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] andnums[j] is at most t and the difference between i and j is at most k.
在Contains Duplicate II上进行了改进,要求nums[i]与nums[j]的差值最大为t,维护一个二叉搜索树,用multiset[红黑树],二叉搜索树种存放的是k个相邻滑动窗口的内容
class Solution {public: bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t) { int n = nums.size(); if(n<=1) return false; /*int i=0,len = k; len = len<n?(n-1-len):(n-2); int step = k<n?k:(n-1); cout<<i<<" "<<len<<endl; while(i<=len) { cout<<i<<"feuri"<<len<<endl; for(int u = i+1;u<=i+step;u++) { cout<<nums[i]<< " fgk"<<nums[u]<<endl; if(abs(nums[i]-nums[u])<=t) return true; } i++; }*/ //维护一个二叉搜索树,用multiset[红黑树],二叉搜索树种存放的是k个相邻滑动窗口的内容 multiset<long long> tree; for(int i=0;i<n;i++) { if(tree.size()>=k+1) tree.erase(tree.find(nums[i-k-1])); multiset<long long>::iterator iter = tree.lower_bound(nums[i]); if(iter != tree.end() && abs(*iter-nums[i]) <= t) return true; multiset<long long>::iterator iter1 = tree.upper_bound(nums[i]); cout<<nums[i]<<" "<<*iter1<<endl; if(iter1 != tree.begin() && abs(nums[i] - *(--iter1)) <= t) return true; tree.insert(nums[i]); } return false; } };
0 0
- 220.leetcode Contains Duplicate III (medium)[]
- Leetcode 220. Contains Duplicate III (Medium) (cpp)
- leetcode -- Contains Duplicate III -- 重点,medium题目
- 220. Contains Duplicate III—medium
- [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
- 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
- leetcode 220. Contains Duplicate III
- [leetcode]220. Contains Duplicate III
- #leetcode#220. Contains Duplicate III
- [leetcode]220. Contains Duplicate III
- 合并冲突后Could't load
- app自动更新_通知栏下载
- 小解Smarty模板的实现原理
- HDU-5137 H - How Many Maos Does the Guanxi Worth
- git简易教程
- 220.leetcode Contains Duplicate III (medium)[]
- Json
- window文件挂载到linux
- grep -o
- 关于部分手机 windowManager 显示不出来
- 获取控件宽高度
- Intellij IDEA 常用快捷键整理
- 管理System UI (状态栏 + 导航栏)
- Flume简介