0908. 最小差值 I
大约 1 分钟
---
0908. 最小差值 I
- 标签:数组、数学
- 难度:简单
题目链接
题目大意
描述:给定一个整数数组 nums,和一个整数 k。给数组中的每个元素 nums[i] 都加上一个任意数字 x (-k <= x <= k),从而得到一个新数组 result。
要求:返回数组 result 的最大值和最小值之间可能存在的最小差值。
说明:
- 。
- 。
- 。
示例:
- 示例 1:
输入:nums = [1], k = 0
输出:0
解释:分数是 max(nums) - min(nums) = 1 - 1 = 0。- 示例 2:
输入:nums = [0,10], k = 2
输出:6
解释:将 nums 改为 [2,8]。分数是 max(nums) - min(nums) = 8 - 2 = 6。解题思路
思路 1:数学
nums 中的每个元素可以波动 [-k, k]。最小的差值就是「最大值减去 k」和「最小值加上 k」之间的差值。而如果差值小于 0,则说明每个数字都可以波动成相等的数字,此时直接返回 0 即可。
思路 1:代码
class Solution:
def smallestRangeI(self, nums: List[int], k: int) -> int:
return max(0, max(nums) - min(nums) - 2*k)思路 1:复杂度分析
- 时间复杂度:。
- 空间复杂度:。