Files
LeetCode-Go/leetcode/0910-Smallest-Range-II/910.Smallest Range II.go
2020-12-21 13:58:49 +03:00

32 lines
411 B
Go

package leetcode
import "sort"
func SmallestRangeII(A []int, K int) int {
n := len(A)
sort.Ints(A)
var ans int = A[n-1] - A[0]
for i := 0; i < n-1; i++ {
a, b := A[i], A[i+1]
high := max(A[n-1]-K, a+K)
low := min(A[0]+K, b-K)
ans = min(ans, high-low)
}
return ans
}
func max(a, b int) int {
if a > b {
return a
}
return b
}
func min(a, b int) int {
if a < b {
return a
}
return b
}