Update 0337.打家劫舍III.md

0337.打家劫舍|||新增C语言实现
This commit is contained in:
a12bb
2024-03-10 21:44:04 +08:00
parent 2cee392d8e
commit 0dc2180cee

View File

@ -490,6 +490,33 @@ function robNode(node: TreeNode | null): MaxValueArr {
}
```
### C
```c
int *robTree(struct TreeNode *node) {
int* amounts = (int*) malloc(sizeof(int) * 2);
memset(amounts, 0, sizeof(int) * 2);
if(node == NULL){
return amounts;
}
int * left = robTree(node->left);
int * right = robTree(node->right);
// 偷当前节点
amounts[1] = node->val + left[0] + right[0];
// 不偷当前节点
amounts[0] = max(left[0], left[1]) + max(right[0], right[1]);
return amounts;
}
int rob(struct TreeNode* root) {
int * dp = robTree(root);
// 0代表不偷当前节点可以获得的最大值1表示偷当前节点可以获取的最大值
return max(dp[0], dp[1]);
}
```
### Rust
动态规划:
@ -523,4 +550,3 @@ impl Solution {
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
</a>