【更新中】LeetCode 2023/11 每日一題 (Nov LeetCoding Challenge)
每日第1題為中文站(LCCN) ,第2題為英文站(LCUS) ,題目連結皆統一為英文站的題目連結。
Easy 、Medium 、Hard 難度的題目分別用🟢🟡🔴表示。
若為周賽題目會額外標註由 @zreotrac
零神計算的rating分數。
All problems solved by python
2023-11-01
🔴 2127. Maximum Employees to Be Invited to a Meeting 2449
美好的一個月要從內向基環樹開始 (X)。
不得不說這題是超過我的能力範圍了,看了幾篇題解,還是似懂非懂,只能先記錄下來。
題意
- 有 名員工要參加會議,會議桌是圓形的,且可以坐下任意數目的人。
- 每個員工都有一位喜歡的員工,且喜歡的員工不會是自己,只有旁邊坐在喜歡員工的旁邊時,該員工才會參加會議。
- 給定 ,其中 表示第 i 位員工喜歡的員工,請問最多有幾位員工可以參加會議?
思路:內向基環樹
- 將每個員工視為圖上的一個點,並且從 向 連一條有向邊,則可以得到一張有向圖。由於每個大小為 的連通塊都有 個點和 條邊,所以每個連通塊必定有且僅有一個環 ,且由於每個點的出度均為,這樣的有向圖又叫做
內向基環樹(pseudotree)
,由基環樹組成的森林叫基環樹森林(pseudoforest)
。- 「內向」是指樹中任意節點有且只有一條出邊,對應的「外向」是指樹中任意節點有且只有一條入邊。
- 每一個內向基環樹(連通塊)都由一個基環和其餘指向基環的樹枝組成。
- 需要注意,基環可能只包含兩個節點 。
- 對於基環長度 的情況,圓桌的最大員工數目即為最大的基環長度,記作 。
- 對於基環長度 的情況,其基環與兩側最長鏈拼起來,也就是為該基環樹所能組成的圓桌的最大員工數。而對於多個基環長度等於 的基環樹,每個基環樹所對應的鏈,都可以拼在其餘鏈的末尾,因此可以將這些鏈全部拼成一個圓桌,其大小記作 。
- 由於每個點的出度均為 ,所以可以統計其 ,從入度為 的點開始對圖進行
拓撲排序
,剩餘的點都是基環上的點, - 在
拓撲排序
的過程中,對非基環上的點,建立一個反向圖,用作查詢基環上的點上最長鏈的長度。
參考
1 | class Solution: |
🟢 501. Find Mode in Binary Search Tree
題意
- 給定一個包含重複值的BST的根 ,找出並返回BST中的所有眾數(即出現頻率最高的元素)。
- 如果樹中有不只一個眾數,可以依任意順序傳回。
- 進階:不使用額外的空間(假設由遞歸產生的隱式呼叫堆疊的開銷不被計算在內)
思路:Counter / Inorder Traversal
- 以任意方式訪問一次BST,並計算每個值出現的次數,最後返回出現次數最多的值,但這樣的話空間複雜度就是 了。
- 利用BST的中序遍歷,可以得到一個遞增的序列,並且相同的值會連續出現,因此可以在遍歷的過程中計算每個值出現的次數,並且在遍歷的過程中更新眾數。
1 | class Solution: |
1 | class Solution: |
2023-11-02
🟢 2103. Rings and Rods 1258
題意
- 總計有 個物品,物品的種類有三種,分別以 、、 表示,並且每個物品都被放置在編號 的箱子內,其中 。
- 給你一個長度為 2n 的字串 , 表示第 個物品的顏色, 表示第 個物品所在的箱子編號。
- 求包含所有種類物品的箱子,並返回這種箱子的數量。
思路:計數
直接統計每個箱子內每種物品的數量,然後遍歷所有箱子,檢查每種物品的數量是否都 。
1 | class Solution: |
🟡 2265. Count Nodes Equal to Average of Subtree 1473
題意
- 給定一棵Binary Tree的根 ,找出並返回滿足要求的節點數,要求節點的值等於其子樹中所有值的平均值。
- 注意: 個元素的平均值可以由 個元素求和然後再除以 ,並向下捨入到最近的整數。
- 的子樹由 和它的所有後代組成。
思路:DFS
在遍歷的過程中,對每個節點,計算其子樹的和 和節點數 ,如果 ,則答案 。
1 | class Solution: |
2023-11-03
🟡 117. Populating Next Right Pointers in Each Node II
題意
給定一個 Binary Tree 的根 ,將每個節點的 next
指針指向其下一個右側節點。如果找不到下一個右側節點,則將 next
指標設為 NULL
。
思路:Level Order Traversal (BFS)
用BFS做Level Order Traversal遍歷每一層,在訪問每層第1個節點前,的大小為本層的節點數量。在遍歷的過程中,將每個節點的 next
指向下一個節點即可。
1 | class Solution: |
🟡 1441. Build an Array With Stack Operations 1180
題意
- 給定一個Array 和一個整數 。每次操作中,可以將 中下一個整數 push 到 中,或者從 中 pop 掉最後面的元素,返回操作成 的操作順序,如果存在多個可行方案,返回任一即可。
- 題目資料保證目標陣列嚴格遞增,並且只包含 1 到 n 之間的數字。
思路:模擬
- 由於題目資料保證目標陣列嚴格遞增,因此可以直接模擬操作過程,並且在過程中檢查是否與目標陣列相同。
1 | class Solution: |
2023-11-04
🟡 421. Maximum XOR of Two Numbers in an Array
題意
給你一個整數Array ,傳回 的最大運算結果,其中 。
思路
<++>
參考
1 | class Solution: |
🟡 1503. Last Moment Before All Ants Fall Out of a Plank 1619
題意
<++>
思路:腦筋急轉彎
<++>
類題
- 🟡 2211. Count Collisions on a Road 1581
- 🟡 2731. Movement of Robots 1923
1 | class Solution: |
2023-11-
🟢🟡🔴 XXXX rating
題意
思路
1 |
🟢🟡🔴 XXXX rating
題意
<++>
思路
<++>
1 |
寫在最後
瞧瞧你發現了什麼?你看,是一串魔法咒語!
1 | (masterpiece, best quality), 1girl, solo, cowboy_shot Musician, Musical attire, Recording studio, Composing music, Performing live, playing guitar, Collaborating with other musicians, gotou1, gotou1, gotou hitori, solo, skirt, pink jacket, track jacket, bangs, hair between eyes, long sleeves, <lora:gotou_hitori_v1:0.800000> |
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 十六個天亮!
評論
WalineGiscus