0%

908.最小差值

题目

最小差值 1

思路

先找到数组中的最大值和最小值,然后用二者的差在减去 2 * k,若小于等于 0,则结果为 0,否则,结果为差值。

题解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public:
int smallestRangeI(vector<int>& nums, int k) {
int min = 10000, max = 0;
for(int i = 0; i < nums.size(); i++){
if(min > nums[i]) // 找最小值
min = nums[i];
if(max < nums[i]) // 找最大值
max = nums[i];
}
if(max - min <= k * 2){
return 0;
}
return (max - min - k * 2);
}
};
  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

执行用时:132 ms, 在所有 C++ 提交中击败了52.57%的用户

内存消耗:83.3 MB, 在所有 C++ 提交中击败了57.45%的用户

通过测试用例:48 / 48

正在加载今日诗词....