动态规划14:LCR 091. 粉刷房子

server/2024/10/18 0:02:52/

动态规划解题步骤:

1.确定状态表示:dp[i]是什么

2.确定状态转移方程:dp[i]等于什么

3.初始化:确保状态转移方程不越界

4.确定填表顺序:根据状态转移方程即可确定填表顺序

5.确定返回值

题目链接:LCR 091. 粉刷房子 - 力扣(LeetCode)

题解:

1.状态表示:f[i]表示粉刷到i号房子时,将其粉刷为红色的最少成本
                     g[i]表示粉刷到i号房子时,将其粉刷为蓝色的最少成本
                     h[i]表示粉刷到i号房子时,将其粉刷为绿色的最少成本

2.状态转移方程:f[i]=costs[i][0]+min(g[i-1],h[i-1])
                            g[i]=costs[i][1]+min(f[i-1],h[i-1])
                            h[i]=costs[i][2]+min(f[i-1],g[i-1])

3.初始化:f[0]=costs[0][0]
                 g[0]=costs[0][1]
                 h[0]=costs[0][2]

4.填表顺序:从左向右,三个表一起填

5.返回值:min(min(f[n-1],g[n-1]),h[n-1])  

class Solution {
public:int minCost(vector<vector<int>>& costs) {//红蓝绿//f[i]表示粉刷到i号房子时,将其粉刷为红色的最少成本//g[i]表示粉刷到i号房子时,将其粉刷为蓝色的最少成本//h[i]表示粉刷到i号房子时,将其粉刷为绿色的最少成本//f[i]=costs[i][0]+min(g[i-1],h[i-1])//g[i]=costs[i][1]+min(f[i-1],h[i-1])//h[i]=costs[i][2]+min(f[i-1],g[i-1])size_t n=costs.size();//处理边界条件if(n==1)return min(min(costs[0][0],costs[0][1]),costs[0][2]);//创建dp表vector<int> f(n);auto g=f;auto h=f;//初始化f[0]=costs[0][0];g[0]=costs[0][1];h[0]=costs[0][2];//填表for(int i=1;i<n;++i){f[i]=costs[i][0]+min(g[i-1],h[i-1]);g[i]=costs[i][1]+min(f[i-1],h[i-1]);h[i]=costs[i][2]+min(f[i-1],g[i-1]);}//返回值return min(min(f[n-1],g[n-1]),h[n-1]);}
};


http://www.ppmy.cn/server/131316.html

相关文章

C语言 | 第十六章 | 共用体 家庭收支软件-1

P 151 结构体定义三种形式 2023/3/15 一、创建结构体和结构体变量 方式1-先定义结构体&#xff0c;然后再创建结构体变量。 struct Stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在学习小组 float score; //成绩 }; struct Stu stu1, stu2; //…

foxy moveit2 小鱼

ros2 foxy 下安装moveit2 通过小鱼安装包(极简)&#xff1a; 通过小鱼配置好git连接&#xff0c;注意start.sh前面有一个. git clone https://gitee.com/ohhuo/d2lmoveit2_tutorials cd d2lmoveit2_tutorials . start.sh 注意观察上面的运行过程&#xff0c;如果没报错啥的&…

Docker 容器跨主机通信 overlay

Docker 容器跨主机通信 overlay 一.Overlay网络概述 ​ Overlay网络是指在不改变现有网络基础设施的前提下&#xff0c;通过某种约定通信协议&#xff0c;把二层报文封装在IP报文之上的新的数据格式。Overlay网络采用VXLAN&#xff08;Virtual Extensible LAN&#xff09;技术…

无头浏览器测试:如何使用 Puppeteer 和 Browserless?

什么是无头浏览器测试&#xff1f; 无头浏览器测试通常指没有头的物体或东西&#xff0c;在浏览器的语境中&#xff0c;它指的是没有 UI 的浏览器模拟。无头浏览器自动化使用 Web 浏览器进行端到端测试&#xff0c;而无需加载浏览器的 UI。 无头模式是一个功能&#xff0c;它…

解决PC端和移动端的css简单适配问题

一般用媒体查询来实现&#xff0c;不同宽度的屏幕对应不同的css样式 media (min-width: 400px){.app {width: 400px;height: 400px;background-color: green;} } 那么问题来了&#xff0c;如果我们有很多个媒体查询条件呢&#xff1f;是不是app的样式需要写很多份&#xff0c;当…

短效IP池子质量怎么判断?

最近经常刷到关于如何判断短效IP池子质量的话题&#xff0c;很多朋友对此感到好奇。今天&#xff0c;我就来为大家解析一下这个问题&#xff0c;希望能帮助你更好地选择和使用短效IP池。 短效IP池的基本概念 短效IP池是由一组生命周期较短的IP地址组成&#xff0c;这些IP地址…

Oracle11g服务器linux 安装

一&#xff0e;安装前准备 1.检查硬件&#xff08;内存&#xff0c;交换分区&#xff0c;tmp分区&#xff0c;cpu信息&#xff0c;内核版本&#xff09; # grep MemTotal /proc/meminfo # grep SwapTotal /proc/meminfo # df -k /tmp&#xff08;>400M&#xff09; # grep …

前端的全栈之路:基于 Vue3 + Nest.js 全栈开发的后台应用

☘️ 项目简介 Vue3 Admin 是一个前端基于 Soybean Admin 二次开发&#xff0c;后端基于 Nest.js 的全栈后台应用&#xff0c;适合学习全栈开发的同学参考学习。 &#x1f341; 前端技术栈&#xff1a; Vue3.5、Ant Design Vue、UnoCSS、Pinia &#x1f341; 后端技术栈&…