908.Smallest_Range_I

908. Smallest Range I

这道题一开始没看懂,其实不难

因为范围是 [-K, K],所以,找到 A 中的 最大值 maxB最小值 minB,然后我们计算差值就可以了,差值就只 maxB - K - (minB + K),也就是 res = maxB - minB - 2 * K,如果 res > 0 返回即可,小于 0 的话,返回 0 即可。

go 的实现代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
func smallestRangeI(A []int, K int) int {
if len(A) == 0 {
return 0
}
minB := A[0]
maxB := A[0]

for _, value := range A {

if value < minB {
minB = value
}
if value > maxB{
maxB = value
}
}

res := maxB - minB - 2 * K
if res < 0 {
return 0
}
return res
}