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

代码随想录算法训练营第三十八天|198.打家劫舍、213.打家劫舍II、337.打家劫舍III。

198.打家劫舍

力扣题目链接

classSolution{public:introb(vector<int>&nums){if(nums.size()<2)returnnums[0];//dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷窃的金额为dp[i]。vector<int>dp(nums.size(),0);dp[0]=nums[0];dp[1]=max(nums[0],nums[1]);for(inti=2;i<nums.size();i++){//偷与不偷dp[i]=max(dp[i-2]+nums[i],dp[i-1]);}returndp[nums.size()-1];}};

213.打家劫舍II(成环)

力扣题目链接
对于一个数组,成环的话主要有如下三种情况:

  • 1.考虑不包含首尾元素
  • 2.考虑包含首元素,不包含尾元素
  • 3.考虑包含尾元素,不包含首元素
    2、3包含了1情况
class Solution { public: int rob(vector<int>& nums) { if(nums.size()==1) return nums[0]; vector<int>re1(nums.begin(),nums.end()-1); vector<int>re2(nums.begin()+1,nums.end()); return max(robRange(re1),robRange(re2)); } int robRange(vector<int>& nums) { if(nums.size()<2) 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]; } };

337.打家劫舍III(二叉树)

力扣题目链接

  • 必须后序遍历,因为必须得到左右节点偷不偷的最大价值才可以进行节点计算
/** * 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) {} * }; */classSolution{public:introb(TreeNode*root){vector<int>re=robTree(root);returnmax(re[0],re[1]);}//长度为2:0不偷 1偷vector<int>robTree(TreeNode*cur){if(cur==NULL)returnvector<int>{0,0};vector<int>left=robTree(cur->left);vector<int>right=robTree(cur->right);//偷curintval1=cur->val+left[0]+right[0];//不偷cur,左右节点可以偷也可以不偷intval2=max(left[1],left[0])+max(right[0],right[1]);return{val2,val1};}};
http://www.jsqmd.com/news/472787/

相关文章:

  • Flutter 三方库 df_collection 的鸿蒙化适配指南 - 强大的集合操作增强工具,优化鸿蒙应用数据处理流
  • 种植保险场景解决方案:遥感技术护航农险高质量发展
  • 第 6 篇 RK 平台开发核心:设备树(DTS)详解,小白也能看懂的保姆级教程
  • anime4kCPP在windows上部署记录
  • 进程线程+装饰器+HSV颜色筛选
  • ubuntu安装nvm
  • WPS VBA 窗体被 Page 控件盖住,如何查看 / 修改 Form 大小?
  • 国企央企人力资源管理系统选型盘点:8个信创合规维度对比与落地建议
  • 台阶仪常见问题解答:原理、精度与薄膜厚度测量方法
  • 高并发系统中的缓存设计策略
  • AI发展会让我们失业吗?从岗位替代到任务重排的实用拆解
  • 通达信〖主升抓牛〗主图指标+副图+选股公式:捕捉主升浪的黄金法则
  • OBS Studio 32.1.0 发布,更新亮点多
  • 2026国内最新清爽控油蓬松洗发水品牌推荐 - 十大品牌榜
  • 烧录时keil识别不出设备解决方法之--串口占用引起的问题(cmsis-dap)
  • Java String 类常用方法学习笔记
  • 智慧教育新生态:让 AI 真正服务于学生全面成长
  • 景区服务碎片化投诉多?巨有科技补齐智慧服务短板
  • Python flask 酒店餐饮美食点餐管理系统
  • 力扣算法题
  • 在资产测绘查询若依框架时找到了一个某周报管理系统
  • OpenClaw实战指南1-OpenClaw是什么
  • 土地储备政策汇编
  • 华为OD机考双机位C卷 - 天然蓄水库 (Java)
  • ECharts-大屏开发复习记录与踩坑总结
  • Web前端入门第 问:JavaScript 一个简单的 IndexedDB 数据库入门示例
  • 学习基于数字孪生的工艺参数优化
  • PyTorch快速入门:环境到数据实战
  • 源码: 以下代码包含了一个数据库所有的 CRUD (增删改查)操作。 <div> <button id=“js_add_btn“>添 ...
  • 基于spring boot的实验室开放管理系统毕业论文+PPT(附源代码+演示视频)