add 0910 smallest-range-ii

This commit is contained in:
Alexander Chernikov
2020-12-21 13:58:49 +03:00
parent e3fd0d2671
commit 65d2fd668b
3 changed files with 112 additions and 0 deletions

View File

@ -0,0 +1,31 @@
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
}