Leetcode658題找到k個最接近的數

2022-08-01 17:03:17 字數 713 閱讀 9891

題目

給定乙個排序好的陣列,兩個整數 k 和 x,從陣列中找到最靠近 x(兩數之差最小)的 k 個數。返回的結果必須要是按公升序排好的。如果有兩個數與 x 的差值一樣,優先選擇數值較小的那個數。

輸入: [1,2,3,4,5], k=4, x=3

輸出: [

1,2,3,4

]k 的值為正數,且總是小於給定排序陣列的長度。

陣列不為空,且長度不超過

104陣列裡的每個元素與 x 的絕對值不超過

104

題解下面參考**於leetcode題解區。本題採用二分查詢法進行求解,如下圖所示,二分過程中,需要找到離目標x最近的數以判斷出連續的起始區間,本題最終結果讓二分後的left作為最終返回子陣列開始點,所以在二分過程中當x靠mid更近時,繼續從左邊的子陣列查詢起始left。

參考:

leetcode658 找到k個最接近的元素

給定乙個排序好的陣列,兩個整數 k 和 x,從陣列中找到最靠近 x 兩數之差最小 的 k 個數。返回的結果必須要是按公升序排好的。如果有兩個數與 x 的差值一樣,優先選擇數值較小的那個數。示例 1 輸入 1,2,3,4,5 k 4,x 3 輸出 1,2,3,4 示例 2 輸入 1,2,3,4,5 k...

leetcode 658 找到K個最接近的元素

學而不思則惘 題面 給定乙個排序好的陣列,兩個整數 k 和 x,從陣列中找到最靠近 x 兩數之差最小 的 k 個數。返回的結果必須要是按公升序排好的。如果有兩個數與 x 的差值一樣,優先選擇數值較小的那個數。示例 1 輸入 1,2,3,4,5 k 4,x 3 輸出 1,2,3,4 示例 2 輸入 1...

658找到K個最接近的元素

題目描述 給定乙個排序好的陣列,兩個整數 k 和 x,從陣列中找到最靠近 x 兩數之差最小 的 k 個數。返回的結果必須要是按公升序排好的。如果有兩個數與 x 的差值一樣,優先選擇數值較小的那個數。示例 1 輸入 1 2,3 4,5 k 4,x 3輸出 1 2,3 4 示例 2 輸入 1 2,3 4...