[刷题] 220 Contains Duplicate III
2024-09-04 08:11:43
要求
- 给出整型数组nums和整数k,是否存在索引i和j
- 使得nums[i]和nums[j]之差不超过t,且i和j之差不超过k
思路
- 建立k个元素的有序查找表
- 每次有新元素加入,寻找查找表中大于 nums[i]-t 的最小值,若存在且此值小于 nums[i]+t,则目标元素存在
- set底层是二叉树实现,时间(nlogn),空间(k)
- vector中的int值相加可能产生整型溢出,set中使用64位整数 long long
实现
1 class Solution {
2 public:
3 bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t) {
4 if(t < 0)
5 return false;
6
7 set<long long> record;
8 for(int i = 0 ; i < nums.size() ; i ++){
9
10 if(record.lower_bound((long long)nums[i] - (long long)t) != record.end() &&
11 *record.lower_bound((long long)nums[i] - (long long)t ) <= (long long)nums[i] + (long long)t)
12 return true;
13
14 record.insert(nums[i]);
15
16 if(record.size() == k + 1)
17 record.erase( nums[i-k] );
18 }
19
20 return false;
21 }
22 };
最新文章
- Eclipse导入MyEclipse创建的web项目报错的解决方法
- Unity3D项目开发一点经验
- SQL 关于apply的两种形式cross apply 和 outer apply
- cvReleaseImage 释放内存出错
- UEditor 之查询当前编辑区域的状态是源码模式还是可视化模式
- 记一次基于Unity的Profiler性能分析
- 利用zip(或者phar)协议进行本地文件包含
- 设置datagridview中button按钮的背景颜色
- JAVA-POI实现EXCEL的读写
- Dev之ChartControl控件(一)
- .net core中引用webservice,并忽略https证书验证
- Hyperledger Fabric 1.0 从零开始(七)——启动Fabric多节点集群
- MySQL 常用语句总结
- arcgis api 3.x for js 入门开发系列七图层控制(附源码下载)
- PhoenixFD插件流体模拟——UI布局【Simulation】详解
- Div不用float布局
- laravel中连表查询
- 安卓备份 To Do(待办事项)的数据库
- C语言 &#183; 字符串输入输出函数
- html 和 javascript 的相关执行顺序