当前位置: 首页> 健康> 美食 > 烟台快速建站公司_软件开发工资多少_网站的优化seo_百度地图广告投放

烟台快速建站公司_软件开发工资多少_网站的优化seo_百度地图广告投放

时间:2025/7/13 14:37:02来源:https://blog.csdn.net/qq_67733273/article/details/142405287 浏览次数:0次
烟台快速建站公司_软件开发工资多少_网站的优化seo_百度地图广告投放

文章目录

  • 题目描述
  • 题解思路
  • 题解代码

题目描述

在这里插入图片描述

题解思路

我们可以考虑存储数组中连续indexDiff个数字,这样我们只需要在这连续的indexDiff个数字中查找相差小于等于valueDiff的两个数字的问题
对于该查找问题,我们可以考虑使用以valueDiff大小为一个桶,如果我们当前加入桶的数字已经存在或者相邻桶的数字的差值是否小于等于valueDiff,则说明存在满足条件的下标对
如果数组遍历完毕后,未找到满足条件的下标对,则没有满足条件的下标对

题解代码

class Solution:def containsNearbyAlmostDuplicate(self, nums: List[int], indexDiff: int, valueDiff: int) -> bool:n = len(nums)m = dict()for i in range(n):# 计算当前数字放入哪个桶中id = nums[i] // (valueDiff + 1)if id in m: # 存在和当前数在一个桶内的数字,表明找到满足条件的下标对return Trueif (id - 1) in m and abs(m[id - 1] - nums[i]) <= valueDiff:# 当前数字的前一个桶中的数字和当前数字的差值绝对值小于等于valueDiff,表明找到满足条件的下标对return Trueif (id + 1) in m and abs(m[id + 1] - nums[i]) <= valueDiff:# 当前数字的后一个桶中的数字和当前数字的差值绝对值小于等于valueDiff,表明找到满足条件的下标对return True# 当前数字放入桶中m[id] = nums[i]# 淘汰前indexDiff个数字所在的桶if i >= indexDiff:m.pop(nums[i - indexDiff] // (valueDiff + 1))return False
关键字:烟台快速建站公司_软件开发工资多少_网站的优化seo_百度地图广告投放

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: