傳送門
思路: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 個數即可停止。一般歸併排序是兩個陣列歸併...