題意
傳送門 1439. 有序矩陣中的第 k 個最小陣列和
題解暴力
列舉所有陣列 o(n
m)
o(n^m)
o(nm
),考慮到 k
kk 值較小,每一次列舉當前行,將子陣列和大小壓縮為 min
(k,t
mp.s
ize(
))
min(k,tmp.size())
min(k,
tmp.
size
()) ,只保留最小的 k
kk 個元素,暴力複雜度 o(k
∗m∗n
)o(k*m*n)
o(k∗m∗
n)。
class
solution
}sort
(tmp.
begin()
, tmp.
end())
; res.
assign
(tmp.
begin()
, tmp.
size()
>= k ? tmp.
begin()
+ k : tmp.
end())
;}return res[k -1]
;}};
二分
二分答案,問題在於如何計算小於二分值的資料數量。題解中有個很妙的操作,預取每一行的最小值,這樣保證 dfs
dfsdf
s 時,所有行都已經有元素加入陣列,此時只要增加同一行元素的差值,即可得到新的陣列。
class
solution
dfs(mat, p +
1, sum, mid);}
intkthsmallest
(vectorint>>
& mat,
int k)
return lb;}}
;
leecode 二分查詢大全
二分查詢大全 class solution def searchrange self,nums list int target int list int if not nums return 1,1 l len nums defzuo nums,target left,right 0,l 1whil...
暴力高階,有序二分暴力
include include includeusing namespace std typedef long long ll const int n 1e5 int a n 100 int f int mid,int n printf mid d num d n mid,num return nu...
Leecode 378 (二分查詢)
leecode 378 有序矩陣中第k小元素 題目描述 給定n n矩陣,其中每行和每列元素均按公升序排序,找到矩陣中第k小元素,請注意 是排序後的第k小元素 示例示例 matrix 1,5,9 10,11,13 12,13,15 k 8,返回 13。解題思路 暴力解題法 將矩陣中所有的數讀入一維陣列...