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

2021-10-07 16:48:54 字數 735 閱讀 7713

傳送門

思路:1.對所有元素排序,時間複雜度:o(n

2log

n2

)o(n^2logn^2)

o(n2lo

gn2)

class

solution

};

2.根據矩陣圖形的性質可知,小於等於某乙個數的圖形在矩陣左上方,大於該數的部分在右下方,且左上角數最小,右下角數最大,因此考慮二分答案,從a[n

−1][

0]

a[n-1][0]

a[n−1]

[0]開始走,如果當前位置滿足則cnt

+=(i

+1),

cnt+=(i+1),

cnt+=(

i+1)

,該列滿足條件的元素個數,否則j++

j++j+

+,列數+1,直到走出矩陣。 時間複雜度:o(n

log(

r−l)

)o(nlog(r-l))

o(nlog

(r−l

))

class

solution

else i--;}

return cnt>=k;

}int

kthsmallest

(vectorint>>

& a,

int k)

return l;}}

;

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 ...

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

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

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

題目 給定乙個 n x n 矩陣,其中每行和每列元素均按公升序排序,找到矩陣中第 k 小的元素 思路及演算法 由題目給出的性質可知,這個矩陣的每一行均為乙個有序陣列。問題即轉化為從這 n 個有序陣列中找第 k 大的數,可以想到利用歸併排序的做法,歸併到第 k 個數即可停止。一般歸併排序是兩個陣列歸併...