Re: [閒聊] 每日leetcode抄襲 (懺悔)

作者: oinishere (是oin捏)   2024-04-23 12:54:40
※ 引述 《Rushia (早瀬ユウカの体操服)》 之銘言:
:  
: https://leetcode.com/problems/minimum-height-trees/description
: 310. Minimum Height Trees
: 給你一個數字 n 表示節點數,和一個表示邊關係的陣列 edges,如果把某個節點作為roo
t
: 有最小的樹高,那麼他被稱為Minimum Height Tree(MHT),求出所有的MHT根節點有哪些

:  
: 思路:
: 1.最簡單的方法就是對編號0~n-1的所有頂點做BFS,然後留下高度最小的,但是他測資
: 2*10^4,我去死。
:  
: 2.這題沒看過很難解出來,每個樹都有葉子節點,我們把所有非葉子節點匡起來:
: https://i.imgur.com/c7f3DyC.png
: 我們會發現從葉子節點出發一定不可能是MHT,因為他需要穿過中間圈起來的非葉節點
: 再到另一邊的葉節點這樣就至少高度為3了,相反的,我們如果從非葉節點往外出發的
: 話高度只為二,所以我們的目標就是找出紅色部分的節點有哪些。
:  
: 3.我們將那些不可能是MHT的節點都刪除:
: https://i.imgur.com/gGG26HF.png
: 我們發現刪除後的圖一樣可以分成葉子節點和非葉節點。
: 不斷的刪除葉子節點後,我們可以得到不存在非葉節點的圖:
: https://i.imgur.com/qoGraPm.png
: 這就是我們要找的MHT root。
:  
: 4.實現方式大概就幾步:
: 建圖 -> 算入度 -> 把入度為1(葉子節點)的節點加到queue BFS -> BFS時每次都把
: 該點刪除並更新入度,如果刪除完的點入度為 1 就表示刪除後找到新的葉節點,放入
: queue 不斷BFS -> 返回最後剩下的葉節點
:  
: 5.你辛苦的寫完BFS送出之後馬上噴一個WA,因為 n=1 是 corner case 要直接返回 [0]
: (幹)。
:
思路:
沒有
解法:
沒有
我寫不出來
這是什麼幹題
我就跑去看解答了
ㄏㄏ
我要懺悔
1010
作者: digua (地瓜)   2024-04-23 12:55:00
大師
作者: ErLKYgyLFzh (b65364700)   2024-04-23 12:56:00
不知懺悔
作者: oinishere (是oin捏)   2024-04-23 12:56:00
我沒寫出來 大師你ㄇ
作者: NTUtriangle (國立臺灣大學聯盟)   2024-04-23 12:57:00
:(
作者: wu10200512 (廷廷)   2024-04-23 12:58:00
hard不用會啦
作者: fairymomo (摩摩)   2024-04-23 12:58:00
作者: oinishere (是oin捏)   2024-04-23 12:59:00
這題 medium
作者: sustainer123 (caster)   2024-04-23 13:00:00
我也想不出來 難爆
作者: LoKingSer (魯王蛇)   2024-04-23 13:00:00
作者: ILoveNTR (愛綠綠)   2024-04-23 13:03:00
作者: pysunsun (屁眼鬆鬆)   2024-04-23 13:05:00
作者: jkl85621 (紅玉)   2024-04-23 13:07:00
作者: KitsuNixya (尼特蘿)   2024-04-23 13:24:00

Links booklink

Contact Us: admin [ a t ] ucptt.com