当前位置: 首页 > news >正文

岱山县网站建设百度竞价托管代运营

岱山县网站建设,百度竞价托管代运营,重庆工程建筑信息网,人员优化方案1、LeetCode198打家劫舍 题目链接:198、打家劫舍 1、dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]。 2、递推公式: 如果偷第i房间,那么dp[i] dp[i - 2] nums[i] &#xf…

1、LeetCode198打家劫舍

题目链接:198、打家劫舍

1、dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]

2、递推公式:

如果偷第i房间,那么dp[i] = dp[i - 2] + nums[i] ;

如果不偷第i房间,那么dp[i] = dp[i - 1];

然后dp[i]取最大值,即dp[i] = max(dp[i - 2] + nums[i], dp[i - 1])。

3、初始化:

递推公式的基础就是dp[0] 和 dp[1]。

dp[0] = nums[0];

dp[1] = max(nums[0], nums[1]);

4、遍历顺序: 从前向后遍历;

5、举例推导。

class Solution {
public:int rob(vector<int>& nums) {if (nums.size() == 0) return 0;if (nums.size() == 1) return nums[0];vector<int> dp(nums.size(), 0);dp[0] = nums[0];dp[1] = max(nums[0], nums[1]);for (int i = 2; i < nums.size(); i++){dp[i] = max(dp[i-2] + nums[i], dp[i-1]);}return dp[nums.size() - 1];}
};

2、LeetCode213打家劫舍II

题目链接:213、打家劫舍II

本题首尾连在一起,成环有三种情况:

考虑不包含首尾元素, 考虑包含首元素不包含尾元素, 考虑包含尾元素不包含首元素。

第二第三中情况包括第一种,所以只需考虑去掉首元素,去掉尾元素,这两种情况下,哪种的dp[i]更大。

递归五部曲与上题一样,由于要去掉首尾元素,定义一个start、end区间

robRange(vector<int>& nums, int start, int end)。

class Solution {
public:int rob(vector<int>& nums) {if (nums.size() == 0) return 0;if (nums.size() == 1) return nums[0];int result1 = robrange(nums, 0, nums.size()-2);int result2 = robrange(nums, 1, nums.size()-1);return max(result1, result2);}int robrange(vector<int>& nums, int start, int end){if (start == end) return nums[start];vector<int> dp(nums.size(), 0);dp[start] = nums[start];dp[start+1] = max(nums[start], nums[start+1]);for (int i = start + 2; i <= end; i++){dp[i] = max(dp[i-2] + nums[i], dp[i-1]);}return dp[end];}
};

3、LeetCode337打家劫舍III

题目链接:337、打家劫舍III

第一次做树形dp,有点难理解。

1、dp数组(dp table)以及下标的含义:下标为0记录不偷该节点所得到的的最大金钱,下标为1记录偷该节点所得到的的最大金钱。

2、递归树时的终止条件:

如果遇到空节点的话,无论偷还是不偷都是0。

if (cur == NULL)  return vector<int>{0,0};    注意这里是花括号。

3、遍历顺序:

后序遍历。

递归左节点,得到左节点偷与不偷的金钱。

递归右节点,得到右节点偷与不偷的金钱。

4、递推公式:

偷该节点,则左右孩子不能偷,int val1 = cur->val + left[0] + left[1];

不偷该节点,则左右孩子要偷,每个孩子里偷一个最大的,int val2 = max(left[0],left[1]) + max(right[0], right[1]);

最后当前节点的状态就是{val2, val1}; 即:{不偷当前节点得到的最大金钱,偷当前节点得到的最大金钱}。

5、举例推导:

 

class Solution {
public:int rob(TreeNode* root) {vector<int> result = robTree(root);return max(result[0], result[1]);}vector<int> robTree(TreeNode* cur){if (cur == NULL) return vector<int>{0,0};vector<int> left = robTree(cur->left);vector<int> right = robTree(cur->right);int val1 = cur->val + left[0] + right[0];int val2 = max(left[0], left[1]) + max(right[0], right[1]);return {val2,val1};}
};

http://www.hyszgw.com/news/61209.html

相关文章:

  • 网站建设了解一下图片网站广告调词平台
  • 网站推广的目的是什么app开发公司名称
  • 湖南响应式网站建设费用网站宣传册怎么做
  • 申请域名做网站免费的个人网页
  • 网站怎么做评论20亿做网站
  • 用php做网站教程网站的特征包括哪些方面
  • 高端网站网站设计西部数码网站管理助手 mysql保存路径
  • 淮北网站制作网站支付页面怎么做
  • 制作静态网站模板投稿 wordpress
  • 银川app购物网站制作公司受欢迎的惠州网站建设
  • 青岛做网站优化哪家好怎么做网址导航网站
  • 精美的网站三明 网站建设
  • 汕尾网站开发台州城乡建设局网站
  • 医保局微网站开发厦门做网站找哪家公司
  • 网站制作公司交接网站上海技术做网站
  • 响应式网站价格别墅建筑设计说明
  • 功能性质网站有哪些网站网站建设小程序山东
  • seo网站页面优化怎么把网站和域名绑定
  • 东莞网站推广及优化今天东营发生的重大新闻
  • 专业网站开发报价婚纱网站手机网站
  • 网站商城功能中国建设网网站
  • 张家港做淘宝网站在海南注册公司需要多少钱
  • 做网站域名重要吗昆山网站建设电话
  • 网站建设备案哪家好做设计的去哪些大厂
  • 产品型网站案例苏州做网站最好公司有哪些
  • 建立网站的软件沈阳 网站制作报价
  • 建设银行投诉网站网站备案个人备案公司网站
  • wordpress改语言上海牛巨微seo
  • 徐州集团网站建设公司h5网站设计报价
  • php企业网站开发框架工业和信息化部网站备案系统是什么意思