方法一 数学思想:
其实就是看数组中最大值和最小值一个加上k一个减去k是否能刚好凑到0,如果不能就是两者之差
var smallestRangeI = function(nums, k) {
var min=9999,max=-1
for(var i=0;i<nums.length;i++){
min = Math.min(min,nums[i])
max = Math.max(max,nums[i])
}
return Math.max(0,max-min-k*2)
};
消耗时间和内存情况:
也可以直接暴力排序:
var smallestRangeI = function(nums, k) {
nums.sort((a,b)=>a-b)
return Math.max(0,nums[nums.length-1]-nums[0]-k*2)
};
消耗时间和内存情况: