leetcode之陣列中的 k 個最強值

2021-10-07 22:41:28 字數 1063 閱讀 5666

陣列中的 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] 也是正確答案。

注意,儘管 |5 - 3| == |1 - 3| ,但是 5 比 1 更強,因為 5 > 1 。

示例 2:

輸入: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]。

[11,8,6,6,7] 的任何排列都是正確答案。

示例 4:

輸入: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...