牛客網 第K大元素

2021-10-06 02:25:28 字數 977 閱讀 9136

1.查詢第k大的元素

給定乙個無序的整型陣列a[n],陣列大小大於等於3,允許有值相同的元素;請設計演算法找到該陣列排序後第三大的元素值並輸出.

乙個非空的整數陣列(至少有3個元素,可正可負)
第三大的元素值
示例1

複製

[1,2,3,4,5]
複製

3
示例2

複製

[1,1,2,2,3]
複製

2
思路:將所有的元素放進優先佇列,預設公升序,然後出佇列,若出佇列的個數為k-1個,剩下的頂部元素就是要求的。

程式:#include

#include

using namespace std;

int main()

int y=0;

while (y<2)

cout<2.

給定乙個 n x n 矩陣,其中每行和每列元素均按公升序排序,找到矩陣中第k小的元素。

請注意,它是排序後的第k小元素,而不是第k個元素。

示例:matrix = [

[ 1,  5,  9],

[10, 11, 13],

[12, 13, 15]

],k = 8,

返回 13。

說明: 

你可以假設 k 的值永遠是有效的, 1 ≤ k ≤ n2 。

第一行為k的值和矩陣的n的值

後續為n*n矩陣的數字,以空格分割

矩陣中第k小的元素
示例1

複製

8 3

1 5 9

10 11 13

12 13 15

複製

13
程式:

#include

#include

using namespace std;

int main()

cout<}return 0;

}

第k大元素

在陣列中找到第k大的元素 最先想到的是簡單排序,但是簡單排序超時,於是想到改造快排,快排的思想是每次確定乙個元素在陣列中的下標,如果確定的下標為k那該元素為k大,若下標大於k,第k大在改下標之前.class solution public int pat int nums,int start,int...

第K大元素

在陣列中找到第k大的元素。給出陣列 9,3,2,4,8 第三大的元素是4 給出陣列 1,2,3,4,5 第一大的元素是5,第二大的元素是4,第三大的元素是3,以此類推 要求時間複雜度為o n 空間複雜度為o 1 如果不考慮時間複雜度和空間複雜度,這道題目有很多種方法,利用一種排序演算法將陣列倒敘排序...

5 第k大元素

2017.9.14 昨天做了一整天的題。首先使用了氣泡排序,我知道會超時。但還是做了一遍,心想複習一下舊的知識也是極好的。於是,果然超時了。但是毫不氣餒。想,要不用快速排序試一試。但是自作聰明的以為這題一定是在考堆排序。然而堆排序是我最不會的排序方式,但還是下定決心開始學習。好不容易學會了之後,果然...