当前位置: 首页> 游戏> 单机 > 江山企业自适应网站建设首选_小程序开发需要什么技术_怎么买到精准客户的电话_全国31省市疫情最新消息今天

江山企业自适应网站建设首选_小程序开发需要什么技术_怎么买到精准客户的电话_全国31省市疫情最新消息今天

时间:2025/7/12 18:34:02来源:https://blog.csdn.net/m0_57527624/article/details/143136342 浏览次数:0次
江山企业自适应网站建设首选_小程序开发需要什么技术_怎么买到精准客户的电话_全国31省市疫情最新消息今天

在这里插入图片描述

显然,较小的值增加,较大的值减小,能够得到较小的差值。

为此,我们用一个i把当前的排序后的数组分成两个部分,i以前的部分是较小值,i以后是较大值。

前一个部分增加k,后一个部分减小k。我们思考更新后的数组的最大、最小值来自哪里。

新的最大值只能来自原数组的最大值(排序后的最后一个数字)-k,或者i以前的部分(包括i)的最大值 + k。因为i以后的值都减小k,不可能比原最大值-k还要大。

new_max = max(ori_max - k, nums[i] + k) // nums[i]是排序后数组i以前部分中最大的

同理,我们可以得到新的最小值:

new_min = min(ori_min + k, nums[i + 1] - k) // nums[i + 1]是i以后部分中最小的

所以,只需要遍历一次nums,就可以得到最小的差值

res = min(res, new_max - new_min)

class Solution:def smallestRangeII(self, nums: List[int], k: int) -> int:nums.sort()min_, max_ = nums[0], nums[-1]res = max_ - min_for i in range(len(nums) - 1):a, b = nums[i], nums[i+1]res = min(res, max(nums[i] + k, max_ - k) - min(nums[i+1] - k, min_ + k))return res

关键字:江山企业自适应网站建设首选_小程序开发需要什么技术_怎么买到精准客户的电话_全国31省市疫情最新消息今天

版权声明:

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

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

责任编辑: