Re: [闲聊] 每日LeetCode

楼主: DJYOSHITAKA (Evans)   2024-02-23 00:53:44
1245. Tree Diameter
premium题 找出一个tree的最长path
看起来不太直觉 其实只是实作一个找depth的function
同时记下前两深的subtree的深度 同时更新最长path长度
最长path必会是某个root的两个最深subtree的深度相加再+2
DFS的过程就可以顺便更新
写起来不难 但不熟的话一开始会卡:( 希望有记起来
class Solution {
public:
int helper(unordered_map<int, vector<int>>& g, int root, int parent, int*
ans)
{
// calculate depth
int max_depth_1 = -1, max_depth_2 = -1;
for(auto n : g[root])
{
if(n != parent)
{
max_depth_2 = max(max_depth_2, helper(g, n, root, ans));
if(max_depth_2 > max_depth_1) swap(max_depth_1, max_depth_2);
}
}
// update ans
*ans = max(*ans, max_depth_1+max_depth_2+2);
// return depth
return max_depth_1+1;
}
int treeDiameter(vector<vector<int>>& edges) {
unordered_map<int, vector<int>> g;
for(auto e : edges)
{
g[e[0]].push_back(e[1]);
g[e[1]].push_back(e[0]);
}
int ans = 0;
int depth = helper(g, 0, -1, &ans);
return ans;
}
};
作者: wu10200512 (廷廷)   2024-02-23 00:55:00
你的每日怎么跟我不一样
楼主: DJYOSHITAKA (Evans)   2024-02-23 00:56:00
课金题 对ㄚ==每周课金题
作者: pandix (面包屌)   2024-02-23 00:57:00
大师
作者: wu10200512 (廷廷)   2024-02-23 00:57:00
课金题是三小 题库里没有的喔
楼主: DJYOSHITAKA (Evans)   2024-02-23 00:59:00
要买premium 可以等特价
作者: NCKUEECS (小惠我婆)   2024-02-23 01:03:00
大师
作者: JIWP (JIWP)   2024-02-23 01:09:00
大师
作者: JerryChungYC (JerryChung)   2024-02-23 01:21:00
https://i.imgur.com/RqqzvWh.png看到这篇才想到之前写的程式锁住的题目也能抓到不过不能在leetcode上送出也没什么用就是了
楼主: DJYOSHITAKA (Evans)   2024-02-23 01:25:00
大师:OOO

Links booklink

Contact Us: admin [ a t ] ucptt.com