leetcode 834 樹中距離之和

2021-10-10 01:42:04 字數 1154 閱讀 2275

題目鏈結

給定乙個無向、連通的樹。樹中有 n 個標記為 0…n-1 的節點以及 n-1 條邊 。

第 i 條邊連線節點 edges[i][0] 和 edges[i][1] 。

返回乙個表示節點 i 與其他所有節點距離之和的列表 ans。

說明:1 <= n <= 10000

class

solution;}

if(n ==2)

;}vectorint>>

dist

(n, vector<

int>

(n, n));

for(

auto

& edge : edges)

for(

int i =

0; i < n;

++i)

for(

int m =

0; m < n;

++m)}}

vector<

int>

result

(n,0);

for(

int i =

0; i < n;

++i)

}return result;}}

;

執行結果:超出時間限制

64 / 69 個通過測試用例

我使用的弗洛伊德演算法,但是過不去。。。

class

solution

num[n]++;

}void

dfs1

(int n,

int f,

int c)

} vector<

int>

sumofdistancesintree

(int n, vectorint>>

& edges)

dfs(0,

-1);

dfs1(0

,-1,cost[0]

);return res;}}

;

參見官方解答

leetcode 834樹中距離之和

這道題考察的是樹形dp,需要兩次dfs。第一次dfs建立樹形結構,並求得根節點到其他點的距離和。第二次dfs是通過交換根節點,獲得以其他點作為根節點的距離和。對於根節點u和它的子結點v,u與其他節點的距離和dp u 可以表示為 d p v sz v sigma dp v sz v dp v sz v...

LeetCode 834 樹中距離之和

原題目 思路 採用樹形動態規劃的思想。對於每乙個節點來說,所有節點到他的距離之和的狀態轉移方程為 其中dp v 代表以v為根的所有節點到他的距離,sz v 表示已v為根的子樹節點的數量。dp u dp u dp v sz v sz u sz u sz v dp v dp v dp u sz u sz...

834 樹中距離之和

給定乙個無向 連通的樹。樹中有 n 個標記為 0.n 1 的節點以及 n 1 條邊 第 i 條邊連線節點 edges i 0 和 edges i 1 返回乙個表示節點 i 與其他所有節點距離之和的列表 ans。示例 1 輸入 n 6,edges 0,1 0,2 2,3 2,4 2,5 輸出 8,12...