动态规划相关 337. House Robber 198 213
来源:互联网 发布:侯捷 c stl源码解析 编辑:程序博客网 时间:2024/06/05 16:55
动态规划相关的题目:198. House Robber 和213. House Robber II都可以使用动态规划的方法
337. House Robber III的结构为树,不太方便用动态规划,有多种解法:
1:笨方法,使用递归的方法,在递归的时候尽量将代码简化即可使得不超时。
int rob(TreeNode* root)
{
if(root == NULL)
{
return 0;
}
if(root->left == NULL && root->right == NULL)
{
return root->val;
}
int max = rob(root->left)+rob(root->right);
int m = root->val;
if(root->left)
m+=(rob(root->left->left) + rob(root->left->right));
if(root->right)
m+=(rob(root->right->left) + rob(root->right->right));
return max>m?max:m;
}
2.升级的递归法(添加一个map来记录已经计算过的子树的值)
3.动态规划法(nrMax表示不抢劫根节点的最大值,rMax表示抢劫根节点的最大值)
void recVisit(TreeNode* root, int &nrMax, int &rMax)
{
int lrMax=0, lnrMax=0, rrMax=0, rnrMax=0;
if(root){
recVisit(root->left, lnrMax, lrMax);
recVisit(root->right, rnrMax, rrMax);
nrMax = max(lnrMax, lrMax) + max(rrMax, rnrMax);
rMax = root->val + lnrMax + rnrMax;
}
}
int rob(TreeNode* root) {
int rMax=0, res=0;
recVisit(root, nrMax, rMax);
return max(nrMax, rMax);
}
- 动态规划相关 337. House Robber 198 213
- House Robber 动态规划
- 动态规划解337. House Robber III
- LeetCode 198House Robber动态规划
- [LeetCode 198] House Robber(动态规划)
- Leetcode House Robber 动态规划
- [LeetCode][动态规划]House Robber
- 198. House Robber-动态规划
- LeetCode 198. House Robber 213. House Robber II--动态规划
- leetcode 198House Robber(简单动态规划解法)
- LeetCode 198 House Robber(简单的动态规划)
- House Robber 动态规划的使用
- leetcode 198.House Robber-打家劫舍|动态规划
- 【Leetcode】198. House Robber - - 【动态规划】
- 【Leetcode】213. House Robber II 【动态规划】
- 198.leetcode House Robber(easy)[动态规划]
- 198. House Robber-leetcode+动态规划
- 动态规划专题之----198. House Robber
- ViewPager+FragmentPagerAdapter实现微信5.2.1主界面架构
- html 标签详解(基础<!DOCTYPE> )
- bzoj 2064: 分裂【状态压缩】
- [BZOJ1394][[Baltic2005]ancient]
- Xcode7 真机调试步骤分享
- 动态规划相关 337. House Robber 198 213
- ibatis批量insert
- 二叉树的构造与遍历
- 来段代码提提神-那些无法回避的知识点之struts权限拦截器
- java 常用五种排序
- ubuntu技巧--QQ截图软件DeepinScrot
- C语言学习笔记之字符I/O(getchar()函数与putchar()函数)
- Android中内容观察者的使用---- ContentObserver类详解
- solution to maven + lombok + eclipse