力扣第378題 有序矩陣中第K小的元素

2021-10-07 16:48:54 字數 727 閱讀 9832

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

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

示例:matrix = [

[ 1, 5, 9],

[10, 11, 13],

[12, 13, 15]

],k = 8,

返回 13。

解法1:使用flat()加上sort()之後根據index進行

var

kthsmallest

=function

(matrix, k)

;

解法2:二分查詢法

var

kthsmallest

=function

(matrix, k)

else

}//遍歷完後得到count,判斷當前弄出的中位數第幾小是不是大於指定k

return count >= k;

}// 二分查詢

while

(left < right)

else

}return left;

};

二分查詢法:折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列

力扣 378 有序矩陣中第K小的元素

思路 顯然易得矩陣最小值為m 0 0 m 0 0 m 0 0 最大值為m n 1 n 1 m n 1 n 1 m n 1 n 1 那麼我們可以二分第k kk小元素的值mid midmi d,再遍歷矩陣的每一行 或列 判斷 m id mid m id的數的總和,假設為num numnu m,如果num...

C語言 力扣 378 有序矩陣中第K小的元素

給定乙個 n x n 矩陣,其中每行和每列元素均按公升序排序,找到矩陣中第 k 小的元素。請注意,它是排序後的第 k 小元素,而不是第 k 個不同的元素。matrix 1,5,9 10,11,13 12,13,15 k 8,返回 13。該題目在力扣中屬於中等難度,因此確實是有些難到我了?不過沒事,最...

378 有序矩陣中第K小的元素

378.有序矩陣中第k小的元素 給定乙個n x n矩陣,其中每行和每列元素均按公升序排序,找到矩陣中第k小的元素。請注意,它是排序後的第k小元素,而不是第k個不同的元素。示例 matrix 1,5,9 10,11,13 12,13,15 k 8,返回 13。你可以假設 k 的值永遠是有效的,1 k ...