博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编程题—leetcode220:存在重复元素 III
阅读量:2441 次
发布时间:2019-05-10

本文共 953 字,大约阅读时间需要 3 分钟。

题目描述
给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 ķ。示例 1:输入: nums = [1,2,3,1], k = 3, t = 0输出: true示例 2:输入: nums = [1,0,1,1], k = 1, t = 2输出: true示例 3:输入: nums = [1,5,9,1,5,9], k = 2, t = 3输出: false来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/contains-duplicate-iii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路

1、使用hash桶解题,首先将其分为桶的大小为t的hash桶,这样桶内的元素的差值必定满足条件,不相邻的桶必定不满足条件

2、循环每次先获取到每个元素的桶id,然后判断桶内是否有元素,如果有,满足条件,如果没有,则判断左右两桶

通过代码
import java.util.HashMap;class Solution {
public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {
if (t < 0) return false; HashMap
data = new HashMap
(); long w = t+1; for(int i=0;i
k) {
data.remove(getID(nums[i - k - 1], w)); } if (data.containsKey(id)){
return true; }else if (data.containsKey(id-1)&&nums[i]-data.get(id-1)
你可能感兴趣的文章
mysql删除事件的使用_使用MySQL事件
查看>>
PHP会话
查看>>
mongodb简介_MongoDB简介
查看>>
本地应用程序_本地化PHP应用程序的“正确方法”,第4部分
查看>>
创业基础网络课答案_创业挑战网络基础设施巨头
查看>>
php使用正则表达式_使用PHP正则表达式
查看>>
用PHP上传文件
查看>>
mfc单文档绘制世界坐标系_文档使世界运转
查看>>
防止跨站请求伪造(CSRF)
查看>>
科创板 云计算业务公司_云计算对您的业务意味着什么
查看>>
SitePoint播客#80:与澳大利亚团队的FullCodePress
查看>>
可以给视图加复合主键_灵活视图处理的模式,第1部分–使用复合材料
查看>>
SitePoint播客#83:与Adam Broadway重新思考您的工作
查看>>
SitePoint播客#117:与Paul Boag返回Boagworld
查看>>
支付宝沙箱设置_从零到云:设置EC2沙箱,第1部分
查看>>
bcrypt强哈希_为什么应该使用Bcrypt哈希存储的密码
查看>>
数据库存储集合_处理集合根的集合-存储库模式
查看>>
SitePoint播客#76:邪恶的WordPress主题
查看>>
BigCommerce和Volusion:比较设置和移动
查看>>
PHP开发人员的8个分布式计算谬论
查看>>