陣列中的 k 個最強值
難度中等2
給你乙個整數陣列arr
和乙個整數k
。
設m
為陣列的中位數,只要滿足下述兩個前提之一,就可以判定arr[i]
的值比arr[j]
的值更強:
請返回由陣列中最強的k
個值組成的列表。答案可以以 任意順序 返回。
中位數 是乙個有序整數列表中處於中間位置的值。形式上,如果列表的長度為n
,那麼中位數就是該有序列表(下標從 0 開始)中位於((n - 1) / 2)
的元素。
示例 1:
輸入:arr = [1,2,3,4,5], k = 2輸出:[5,1]解釋:中位數為 3,按從強到弱順序排序後,陣列變為 [5,1,4,2,3]。最強的兩個元素是 [5, 1]。[1, 5] 也是正確答案。示例 2:注意,儘管 |5 - 3| == |1 - 3| ,但是 5 比 1 更強,因為 5 > 1 。
輸入:arr = [1,1,3,5,5], k = 2輸出:[5,5]解釋:中位數為 3, 按從強到弱順序排序後,陣列變為 [5,5,1,1,3]。最強的兩個元素是 [5, 5]。示例 3:
輸入:arr = [6,7,11,7,6,8], k = 5輸出:[11,8,6,6,7]解釋:中位數為 7, 按從強到弱順序排序後,陣列變為 [11,8,6,6,7,7]。示例 4:[11,8,6,6,7] 的任何排列都是正確答案。
輸入:arr = [6,-3,7,2,11], k = 3輸出:[-3,11,2]示例 5:
輸入:arr = [-7,22,17,3], k = 2輸出:[22,17]思路是先用排序演算法
本題的課後答案
雙指標 時間o(nlogn + k)
class solution );
vectorans(arr.begin(), arr.begin() + k);
return ans;
Leetcode 5429 陣列中的 k 個最強值
1.題目鍊錶 2.題目鏈結 給你乙個整數陣列 arr 和乙個整數 k 設 m 為陣列的中位數,只要滿足下述兩個前提之一,就可以判定 arr i 的值比 arr j 的值更強 arr i m arr j m arr i m arr j m 且 arr i arr j 請返回由陣列中最強的 k 個值組成...
LeetCode之560 和為K的子陣列個數
560.和為k的子陣列 給定乙個整數陣列和乙個整數k,你需要找到該陣列中和為k的連續的子陣列的個數。示例 1 輸入 nums 1,1,1 k 2輸出 2 1,1 與 1,1 為兩種不同的情況。說明 陣列的長度為 1,20,000 陣列中元素的範圍是 1000,1000 且整數k的範圍是 1e7,1e...
LeetCode 215 陣列中的第K個最大元素
在未排序的陣列中找到第 k 個最大的元素。請注意,你需要找的是陣列排序後的第 k 個最大的元素,而不是第 k 個不同的元素。示例 1 輸入 3,2,1,5,6,4 和 k 2 輸出 5 示例 2 輸入 3,2,3,1,2,4,5,5,6 和 k 4 輸出 4 說明 你可以假設 k 總是有效的,且 1...