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

怎么查网站是哪个公司做的班级网站怎么做

怎么查网站是哪个公司做的,班级网站怎么做,网站标签怎样修改,成品网站w灬 源码1688网页代码随想录算法训练营第五十天 198.打家劫舍 题目链接:198.打家劫舍 确定dp数组以及下标的含义:dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]。确定递推公式:max(dp[i - 1],…

代码随想录算法训练营第五十天

198.打家劫舍

题目链接:198.打家劫舍

  1. 确定dp数组以及下标的含义:dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]。
  2. 确定递推公式:max(dp[i - 1], dp[i - 2] + nums[i]);,不偷当前节点和偷当前节点哪个获利最大就取哪个
  3. dp数组如何初始化:dp[0]=nums[0],只有一个必须偷。dp[1]=max(nums[0],nums[1])一共2个元素,只能偷一个最大的
  4. 确定遍历顺序:从前向后遍历。
  5. 打印dp数组。
class Solution {
public:int rob(vector<int>& nums) {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 - 1], dp[i - 2] + nums[i]);}return dp[nums.size() - 1];}
};

213.打家劫舍II

题目链接:213.打家劫舍II
偷第一家就不能偷最后一家,偷最后一家就不能偷第一家,分别将两种状态求出,再从二者之间找最大值。两种情况分别可以用上题方法求解。

class Solution {
public:int Rob(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 - 1], dp[i - 2] + nums[i]);}return dp[end];}int rob(vector<int>& nums) {if(nums.size()==1)return nums[0];int first = Rob(nums,0,nums.size()-2);int last = Rob(nums, 1, nums.size()-1);return max(first,last);}
};

337.打家劫舍III

题目链接:337.打家劫舍III
dp数组表示,每个节点偷当前节点和不偷当前节点可以取得的最大价值。要求当前节点值需要知道左右节点的值,所以是后序遍历。最后再偷根节点和不偷根节点之间取一个最大值即可。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<int> Rob(TreeNode* cur){if(cur==nullptr)return {0,0};vector<int> left = Rob(cur->left);vector<int> right = Rob(cur->right);vector<int>dp(2);//定义一个dp数组dp[0]表示当前节点不偷可以获得的最大金币,dp[1]表示偷当前节点可以获得的最大金币dp[0] = max(left[0],left[1])+max(right[0],right[1]);//不偷当前节点,那它的子节点可以选择偷或者不偷,左子偷不偷选最大的+右子偷不偷选最大的dp[1] = left[0]+right[0]+cur->val;//偷当前节点,左右子都不能偷,所以等于左不偷+右不偷+当前节点的值return dp;}int rob(TreeNode* root) {return max(Rob(root)[0],Rob(root)[1]);}
};

http://www.yayakq.cn/news/708194/

相关文章:

  • 昆明哪里做网站做公司网站首页
  • 专门做外国的网站吗wordpress评论主题
  • 网站运营推广方式电子商务网站开发系统平台
  • 大学生免费服务器桂平seo快速优化软件
  • 网站产品优化方案wordpress首页强制新窗
  • 网站外链是友情连接吗页面设计在哪儿
  • 网站开发项目实战杭州软件开发定制公司
  • shopify建站费用wordpress tag页
  • 上海法律网站建设怎样做网站 知乎
  • 全国水利建设市场信用信息平台门户网站网站建设top图
  • 行业门户网站建设费用东莞网站设计推荐易维达2
  • 做平台网站外包多少钱啊广州冼村属于哪个区
  • 福州网站建设yfznkj小程序后台管理系统
  • 建设网站的协议优良的定制网站建设
  • 花都网站建设公司怎么样抖音seo
  • 网站备案流程及步骤wordpress 搜索框代码
  • 建设网站有哪些步骤西宁网站建设报价壹君博贴心
  • 宠物论坛网站策划书专业的网站建站公司
  • 网站开发绪论erp系统哪个品牌最好
  • 怎么开通网站和进行网页设计佛山网站建设与设计
  • 网站制作工资成都logo标志设计
  • 做网站下载别人的图算不算侵权萌导航
  • 濮阳网站建设公司制作一个网站大概要多少钱
  • 学校网站建设材料网站开发科普书
  • 商务网站建设ppt企业网站的设计与实现论文
  • 网站建设设计服务公司建设大型网站推广收费
  • 网上有做口译的网站么免费成品网站模板下载
  • 网站建设找推推蛙菜谱网站后台代码
  • 购物网站模板代码下载精品课程网站建设设计方案
  • 燃气公司网站建设方案网站建设及报价格方案