658. Find K Closest Elements
https://leetcode.com/problems/find-k-closest-elements/description/
https://paste.ubuntu.com/p/TCH82fyZ4j/
整段代碼是可以通過的
但是有很多幸運成份,自己也想不通,
目標:找到一個窗口size k ,此窗口裡面元素盡量靠近target x
若是距離x一樣,窗口盡量靠左
假設窗口左端點為s 和 e
二分法移動選取窗口
# s...m.......x...m+k-1...e
# 如果x比左端點遠,則s右移,使得窗口右移
# 反之,e左移,使得窗口左移
# 問題:如果x距離左右端點距離相同 x - arr[m] == arr[m+k-1] - x
# 應該左移還是右移?
# 我誤打誤撞選了左移
(自問自答:因為題目說,若是相同,則盡量取靠左)
# 離開while loop後,考慮答案為 arr[s : s+k] or arr[e : e+k]
# 為什麼下面這樣是對的?