LeeCode 1439 暴力 二分

2021-10-05 17:32:48 字數 1003 閱讀 5192

題意

傳送門 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。解題思路 暴力解題法 將矩陣中所有的數讀入一維陣列...