Find K Closest Elements
Given a sorted integer array arr, two integers k and x, return the k closest integers to x in the array. The result should also be sorted in ascending order.
An integer a is closer to x than an integer b if:
|a - x| < |b - x|, or
|a - x| == |b - x| and a < b
配列arrのうち連続するk個の要素を抜き出すので、ウィンドウが移動するイメージで解く
ウィンドウの始点となる最小値を二分探索で求めるやり方がスマートだった code:main.go
func findClosestElements(arr []int, k int, x int) []int {
l, r := 0, len(arr)-k
// 解答となる範囲の最左位置を探索
for {
if l >= r { break }
mid := l + (r-l)/2
l = mid+1
} else {
r = mid
}
}
}