Leetcode908思路
为什么写这篇文章?
相信不少人在看官方的leetcode题解的时候,都遇到了不少困难。leetcode官方的题解,省略了不少细节。导致在读的时候非常难懂。所以,我在这里写出我对官方答案的理解和解读。希望可以帮助大家更好的理解官方的题解。
题目链接
自己的解读
官方给出了两种情况,下面我们对这两种情况分别进行讨论:
- 。那么可以将数组中所有的数改成相同的数,所以最后更改后数组的最大值和最小值是0。
在nums当中,除了了和,其他的数字一定介于两者之间,这是毋庸置疑的。而maxNum和minNum之间的差值不超过2k。而介于之间的数字也一定满足并且。为什么呢?因为。也就是说和可以通过+k和-k来相互转换。所以,两个相隔最远的数字都可以通过k相互转换的,那么中间的数也肯定是可以的。 所以,数组中的所有的数都可以变成相同的数字。
- 如果,那么更改后的数字的最低分数是。
和的最小差值为。
1)更改后的数组的最低分数一定大于等于这个差值。
原因如下:
- 如果更改后的数组,和依然是为最大值和最小值,那么差值就是结果了。
- 如果更改后的数组,和其中一个不是最大值或者最小值,那么结果一定会被这个大。因为最大值和最小值的距离比他们的差值更远。
所以,更改后的数组的最低分数一定大于等于。
2)更改后的数组的最低分数一定小于等于这个差值。
原因如下:
- 如果说原来的数组的,进行更改后为,并且这个数字大于原来数组中的,那么一定可以通过k变成。
- 如果说原来的数组的,进行更改后为,并且这个数字小于原来数组中的,那么一定可以通过k变成。
也就是说,原来数字的中的数字都可以区间之间的整数。所以,更改后的最低分数一定小于等于这个差值。
既大于有小于,那么最低分数就是这个差值。
因此,当的时候,最低分数就是。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构