2023年6月29日打卡

2021-10-07 15:06:43 字數 534 閱讀 8687

在未排序的陣列中找到第 k 個最大的元素。請注意,你需要找的是陣列排序後的第 k 個最大的元素,而不是第 k 個不同的元素。

本題核心在於排序,本題目前沒有發現排序外的解法,那核心就是如何降低排序的複雜度。

氣泡排序可以作為一種解法,但 o(n2) 的時間複雜度有點不太好,經同學嘗試可以通過。

我採用的是c++自帶的 sort 排序,sort本身是如何排序的我並不非常清楚,但是時間複雜度可以保持在 o(nlogn) 以內,相較來說肯定比上一種要好。

int

findkthlargest

(vector<

int>

& nums,

int k)

題解還提供了兩種較為優秀的方法,其一是採用堆排序,然後刪除 x 個節點來獲得結果,時間複雜度為 o(n + klogn),另一種方法是根據快速排序的特性,在第 k 個確定下標的節點即為結果;這兩種解法的描述較為複雜,請自行看該題題解(太睏了,捋不明白),或者明天可能會寫。

今天有事,雖然還是一題打卡。

2023年7月6日打卡

乙個機械人位於乙個 m x n 網格的左上角 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角。現在考慮網格中有障礙物。那麼從左上角到右下角將會有多少條不同的路徑?網格中的障礙物和空位置分別用 1 和 0 來表示。說明 m 和 n 的值均不超過 100。原題是有圖的,但是我懶得粘過來,...

7月29日打卡

1.貪心法中的小心機 挑戰p39頁貪心法,硬幣問題 其中有一步利用了乙個小心機 include include include using namespace std const int v 6 int c 6 a void solve printf d n ans int main scanf d...

精華 2023年6月29日 Canvas 刮刮樂

doctype html utf 8 canvas刮獎遊戲 title prize canvas style window.onload function 移動事件 canvas.onmousemove function event var x event.clientx 與x軸的距離 var y ...