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

粉刷房子(简单多状态dp问题)

问题描述与解题思路

粉刷房子
这个题只要你搞清楚dp[i][j]的含义,后面的状态转移方程也很好求,然后代码也很好写。
在这里插入图片描述

确定本题的状态表示

dp[i][0] 表示:粉刷到 i 位置的时候,最后一个位置粉刷上红色,此时的最小花费
dp[i][1] 表示:粉刷到 i 位置的时候,最后一个位置粉刷上蓝色,此时的最小花费
dp[i][2] 表示:粉刷到 i 位置的时候,最后一个位置粉刷上绿色,此时的最小花费

确定本题的状态转移方程

dp[i][0] =min( dp[i-1][1],dp[i-1][2])+costs[i][0]
dp[i][1] =min( dp[i-1][0],dp[i-1][2])+costs[i][1]
dp[i][2] =min( dp[i-1][0],dp[i-1][1])+costs[i][2]

填表求值

根据初始条件和状态转移方程,确定填表顺序,进而逐步填满dp表,最终返回题目要的结果

代码实现

class Solution {
public:int minCost(vector<vector<int>>& costs) {int m=costs.size();vector<vector<int>> dp(m+1,vector<int>(3,0));for(int i=1;i<=m;i++){dp[i][0]=min(dp[i-1][1],dp[i-1][2])+costs[i-1][0];dp[i][1]=min(dp[i-1][0],dp[i-1][2])+costs[i-1][1];dp[i][2]=min(dp[i-1][0],dp[i-1][1])+costs[i-1][2];}return min({dp[m][0],dp[m][1],dp[m][2]});}
};
http://www.lryc.cn/news/624377.html

相关文章:

  • 场外期权的股票停牌了怎么处理?
  • 226. 翻转二叉树
  • 《Unity Shader入门精要》学习笔记二
  • IOPaint 远程修图:cpolar 内网穿透服务实现跨设备图片编辑
  • 旧物回收小程序的商业变现路径探索
  • LeetCode 刷题【45. 跳跃游戏 II】
  • nuScence数据集
  • AI应用商业化加速落地 2025智能体爆发与端侧创新成增长引擎
  • 【2025CVPR-目标检测方向】RaCFormer:通过基于查询的雷达-相机融合实现高质量的 3D 目标检测
  • 机器学习(决策树)
  • 【音视频】瑞芯微、全志芯片在运动相机和行车记录仪产品分析
  • 从决策树基础到熵与信息增益
  • 机器学习的多种算法
  • 常见的光源频闪控制方式
  • 20. 云计算-Service MeshServerless
  • 用本地代理 + ZIP 打包 + Excel 命名,优雅批量下载跨域 PDF
  • 基于 ONNX Runtime 的 YOLOv8 高性能 C++ 推理实现
  • Pomian语言处理器 研发笔记(一):使用C++的正则表达式构建词法分析器
  • 浅谈 Python 正则表达式中的 groups()
  • GitLab 安全漏洞 CVE-2025-7739 解决方案
  • GitLab 安全漏洞 CVE-2025-6186 解决方案
  • Mind GPT:理想汽车发布的多模态大模型
  • Day119 持续集成docker+jenkins
  • 汽车企业顾客满意度调查:全周期反馈解码方案(市场调研实践)
  • Unity引擎播放HLS自适应码率流媒体视频
  • Hi3519DV500 AIISP源码分享 臻全彩 黑光全彩摄像机源码
  • python的课外学习生活活动系统
  • JavaWeb 获取应用根路径的全面指南
  • 深度学习 --- 基于MobileNetV3 实现的花卉识别
  • C 语言数据结构与算法的复杂度分析:从理论到实战的效率衡量指南