感覺自己就不是計劃星球人,雖然fifty project要求每天早上完成一天的計劃,但是對于一個p人腦子,強制自己按照計劃行事真的太難了。我也理解在早晨花費時間做好一天的計劃有很多好處,但是實際行動起來完成率極低。p人的世界里變動太多了,所以每天的計劃表實際上都變成了最后記錄的時候的“完成回顧表”hhhh
我決定放棄“計劃”這件事情,以后就改為記錄吧~
今日完成記錄
Time | Plan | 完成情況 |
---|---|---|
9:00 - 11:00 | 摩托車駕駛證考試 | √一把過拿下駕駛證! |
11:00 - 12:00 | Leetcode周賽 | √ |
14:00 - 15:30 | 健身 | √ |
16:00 - 17:00 | 《挪威的森林》 | √ |
Leetcode
周賽
難得這周單雙周賽哇,但是雙周賽熬夜場放棄了,單周賽又剛好是摩托車駕駛證考試時間(好在一把過了嘻嘻)回來以后還有一周時間,趕緊寫了兩個題,掉大分了又
統計被包圍的建筑:一個二維數組地圖,有n個建筑,如果同行上左側右側都有建筑,同列上側下側都有建筑,那么這個建筑是被包圍的。
思路:記錄每一行每一列的最大最小值,然后遍歷每一個建筑,只要不是該行該列最大最小值,那么就是被包圍建筑。
針對圖的路徑存在性查詢I:給定n和一個長度為n的數組nums, 這是一個非遞減數組,如果兩個數差距小于等于maxDiff,則表示這兩個節點存在邊,最后給出一系列query,要求返回一個Boolean[] 對應query,query[i]是一個數組 [ u i , v i ] [u_i, v_i] [ui?,vi?], res[i]表示 u i 和 v i u_i和v_i ui?和vi?是否相連。
思路:根據nums非遞減,可以順序遍歷nums,結合maxDiff可以得知哪些點之間存在邊,然后用并查集記錄哪些邊相連。并且可以O(1)時間查出是否相連
后面兩個題是hard,第四題是第二題的復雜版本,明天找時間補一下
每日一題
統計符合要求的長度為3的子數組數目:給出長度為3的子數組且符合要求的數目。要求:i, i + 1, i + 2
滿足arr[i + 1] = (arr[i] + arr[i + 2]) * 2。
思路:直接暴力遍歷,之前0x3f大佬提到的遍歷技巧,三個數情況,枚舉中間。
題單
最小正和子數組:給定一個數組arr, 給定兩個數l和r, 要求找出這樣一個子數組,這個子數組的長度大于等于l小于等于r,并且該子數組和大于零,且是所有滿足要求的子數組的最小和。
思路:首先計算前綴和,這種求子數組和大于等于0或者小于0的題都可以用前綴和處理,一方面是因為子數組可以用前綴和做差計算,另一方面通過有序表或者哈希表,可以快速找到當右節點為j時滿足某個要求的子數組左節點。使用滑動窗口讀數,窗口大小為[l, r]。利用有序表存儲讀過數的前綴和pre[i], 有序表中存放了r-l+1個前綴和,對于當前的i,以i為子數組的右節點,計算哪個點作為左節點的時候可以得到最小正和。只要找到有序表中小于pre[i]的數,pre[i] - orderedTable.floor(pre[i])即為當前i可以得到的符合要求的最小正和。遍歷完就可以得到所有可能的最小正和。
感覺自己完全沒有表述清楚QAQ
健身
今天練胸
- 30磅啞鈴平板推胸 12 * 4
- 30磅啞鈴上斜推胸 12 * 4
- 20kg 蝴蝶機夾胸 12 * 4
- 繩索下拉 10kg * 12 * 4
- 腹肌訓練
《挪威的森林》
朋友送的《挪威的森林》已經放了好久好久了,一直都沒有打開看,最近打開看主要有兩個原因:一方面是因為看完了《百分之百的女孩》以后,感覺有一點點意猶未盡,因為都是一些短小說,讓我感覺有點難受,想看看他的正經長篇;另一方面是因為前陣子抖音刷到的《挪威的森林》的片段文案,讓我感覺這個書也有一點點意思hhh
今天看了序,啊,真的,文人寫序真是長死了,不過也是,這是譯本,譯者在書中的操作空間一方面是自己翻譯的表達,另一方面也就是序(既可以評價一下這本書,又可以發表一下自己對作者、作品的感情~)hhhh
讀序讀到后面有點煩啊,因為中間頻繁出現劇透,不過好在我記性不好,看完就忘;還有就是太長了,被吊胃口吊得難受,就好像餓了很久很久,不過越是饑餓,晚飯應該越是好吃吧~ 有點期待明天的正文了