LCR 091. 粉刷房子

news/2025/1/21 16:19:40/文章来源:https://www.cnblogs.com/Fwy040611/p/18683746

题目

思路描述

动态规划

  1. 状态定义

    • costs[i][j] 表示第 i 个房子粉刷成第 j 种颜色的花费。
    • dp[i][j] 表示前 i 个房子粉刷到第 i 个房子为第 j 种颜色的最小花费。
  2. 状态转移方程

    • dp[i][j] = costs[i][j] + min(dp[i-1][k]),其中 k != j
    • 即当前房子的颜色不能与前一个房子的颜色相同。
  3. 边界条件

    • 初始化 dp[0][j] = costs[0][j],表示第一个房子粉刷成第 j 种颜色的花费。
  4. 最终结果

    • 最终结果是 min(dp[n-1][j]),即最后一个房子粉刷成任意一种颜色的最小花费。

代码实现

class Solution {
public:int minCost(vector<vector<int>>& costs) {if (costs.empty()) return 0;int n = costs.size();for (int i = 1; i < n; ++i) {costs[i][0] += min(costs[i - 1][1], costs[i - 1][2]);costs[i][1] += min(costs[i - 1][0], costs[i - 1][2]);costs[i][2] += min(costs[i - 1][0], costs[i - 1][1]);}return min({costs[n - 1][0], costs[n - 1][1], costs[n - 1][2]});}
};

注意事项

  1. 边界条件处理

    • 如果 costs 为空,直接返回 0。
  2. 变量初始化

    • 初始化 ncosts 的大小。
  3. 循环控制

    • 循环从 1 开始到 n,确保覆盖所有可能的房子数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/872856.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码的可测试性

目录单元测试可测试接口面向接口单元测试 一个代码质量和工程质量有保证的项目一定有比较合理的单元测试覆盖率,没有单元测试的项目一定是不合格的或者不重要的,单元测试应该是所有项目都必须有的代码,每一个单元测试都表示一个可能发生的情况,单元测试就是业务逻辑。可测试…

一镜到底,通过Llama大模型架构图看透transformers原理

想了解大模型 Llama 的工作原理?Llama Nuts and Bolts 项目不依赖外部库,通过 Go 语言从零构建 Llama 3.1 8B-Instruct 模型,为学习者提供了一个教育性深度探索,让您动手实践理解大型语言模型。一镜到底,通过Llama大模型架构图看透transformers原理 Llama Nuts and Bolts是…

深入理解视图的创建与删除:数据库管理中的高级功能

title: 深入理解视图的创建与删除:数据库管理中的高级功能 date: 2025/1/21 updated: 2025/1/21 author: cmdragon excerpt: 在现代数据库管理系统中,视图是一个重要的高级功能,可以为用户提供定制化的数据视图以满足特定需求。视图不仅能够简化复杂的查询,还能增强数据安…

域名续费只能在原平台吗

在域名管理中,续费是一个重要的环节,确保域名的持续使用和网站的稳定运行。然而,许多用户会问:“域名续费是否只能在原平台进行?”答案是:不一定。虽然域名续费通常在原注册商进行,但也可以通过其他平台完成,不过需要满足一定的条件和流程。 一、域名续费的常规操作 一…

set_multicycle_path的使用

在设计中有时会碰到部分难以优化的大块组合逻辑,例如我们这次的设计中调用了DW的浮点sqrt的IP,尽管在综合时,工具已经最大effort去简化逻辑,路径上的cell已经基本上全都ulvt了,timing仍然无法在一个周期内满足。 如果是自己设计的电路模块,这种情况下或许可以拆分流水线来…

双栈 隧道

运行模式 Dual-Stack(双栈)、Tunneling(隧道)、Translation(NAT)Dual-Stack:双栈设备同时运行IPv4和IPv6Tunneling 隧道,把IPv6的数据包封装在IPv4中隧道的起点的IPv4地址必须为手工配置,根据隧道终点的IPv4地址分为两类:

顶天立地系列之一 | 数智技术的产学研融合与行业应用高峰论坛在苏成功举办

1月15日下午,由璞华科技有限公司、武汉大学苏州研究院、苏州工业园区服务贸易协会联合主办的“数智技术的产学研融合与行业应用高峰论坛”在苏州敬斋会议中心成功召开。此次论坛旨在促进数智技术的产学研融合,探索硬核技术在行业的应用路径,吸引了众多业界专家、学者和企业代…

璞华科技携手云南白药、武汉大学运用AI打造世界级灯塔工厂

近日,璞华科技在云南白药集团携手武汉大学三方共同举办了“聚焦白药快消品基于灯塔及未来的AI探讨”技术研讨会。会议旨在通过深入探讨白药快消品行业的智能化转型、灯塔工厂的应用、AI 技术的研发与创新作用以及未来发展趋势等方面,为白药快消品行业的转型升级和可持续发展提…

Linux上使用docker部署.net8项目详细教程

在docker上部署自己的.net8 webapi,以腾迅linux云服务为例: docker的学习和具体安装可以访问官网地址:Docker官方安装教程文档网址:https://docs.docker.com/engine/install/centos/ 1.安装docker 1.1 查看docker是否已安装: 命令:docker -v 如果显示版本,说明已经安装成…

zookeeper安装部署(单节点)

环境: OS:Centos 7 zookeeper:3.8.41.获取安装介质 https://zookeeper.apache.org/releases.html#download 下载稳定版本 wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz2.安装[root@node1 /]# cd /soft[root@node1 soft]# tar -…

elasticsearch 数据同步

数据同步 elasticsearch中的酒店数据来自于mysql数据库,因此mysql数据发生改变时,elasticsearch也必须跟着改变,这个就是elasticsearch与mysql之间的数据同步。 异步通知流程如下:hotel-admin对mysql数据库数据完成增、删、改后,发送MQ消息 hotel-demo监听MQ,接收到消息后…

CSS实现各种形状

CSS3的一个非常酷的特性是允许我们创建各种规则和不规则形状的图形,从而可以减少图片的使用。以前只能在Photoshop等图像编辑软件中制作的复杂图形现在使用CSS3就可以完成了。通过使用新的CSS属性,像transform和border-radius,我们可以创建非常漂亮和复杂的图形效果。 圆形 …