首页 > 其他分享 >LCR 091. 粉刷房子

LCR 091. 粉刷房子

时间:2025-01-21 16:20:54浏览次数:1  
标签:LCR min int 091 粉刷 房子 costs dp

题目

思路描述

动态规划

  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,确保覆盖所有可能的房子数。

标签:LCR,min,int,091,粉刷,房子,costs,dp
From: https://www.cnblogs.com/Fwy040611/p/18683746

相关文章

  • JSP农产品溯源系统d5091(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表技术要求:开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技术后端使用SpringBoot,Spring技术主数据库使用MySQL开题报告内容一、研究背景随着食品安全问题的日......
  • 计算机毕业设计—270917 SSM流浪宠物领养系统(源码免费领)
    摘 要流浪宠物一直是影响城市环境与居民生活的一个不可忽略的因素。基于此,本文设计并实现一个流浪宠物领养系统。用户可以通过本系统查看搜索流浪宠物的相关信息、进行领养申请,为其提供爱心帮助。本系统有效地解决了流浪宠物领养工作开展困难等问题,为流浪宠物与社会爱动物......
  • 剑指Offer|LCR 023. 相交链表
    LCR023.相交链表给定两个单链表的头节点headA和headB,请找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回null。图示两个链表在节点c1开始相交**:**题目数据保证整个链式结构中不存在环。注意,函数返回结果后,链表必须保持其原始结构。示例1......
  • 【无人机协同】遗传算法GA同构异构无人机UAV协同搜索【含Matlab源码 10916期】
    ......
  • 【CSS in Depth 2 精译_091】15.4:让 CSS 高度值过渡到自动高度 + 15.5:自定义属性的过
    当前内容所在位置(可进入专栏查看其他译好的章节内容)第五部分添加动效✔️【第15章过渡】✔️15.1状态间的由此及彼15.2定时函数15.2.1定制贝塞尔曲线15.2.2阶跃15.3非动画属性15.3.1不可添加动画效果的属性15.3.2淡入与淡出15.4过渡到自然......
  • 【LeetCode】LCR 175.计算二叉树的深度
    题目链接:LCR175.计算二叉树的深度题目描述:思路一(深度优先搜索):使用深度优先搜索算法进行二叉树后序遍历复杂度分析:时间复杂度O(N):N为树的节点数量,计算树的深度需要遍历所有节点空间复杂度O(N):最差情况下(当树退化为链表时),递归深度可达到N/***Definitionfor......
  • LCR 170. 交易逆序对的总数
    交易逆序对的总数在股票交易中,如果前一天的股价高于后一天的股价,则可以认为存在一个「交易逆序对」。请设计一个程序,输入一段时间内的股票交易记录record,返回其中存在的「交易逆序对」总数。示例1:输入:record=[9,7,5,4,6]输出:8解释:交易中的逆序对为(9,7),(9,5),......
  • 剑指Offer|LCR 012. 寻找数组的中心下标
    LCR012.寻找数组的中心下标给你一个整数数组nums,请计算数组的中心下标。数组中心下标是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为0,因为在下标的左侧不存在元素。这一点对于中心下标位于数......
  • LCR 164. 破解闯关密码
    破解闯关密码闯关游戏需要破解一组密码,闯关组给出的有关密码的线索是:一个拥有密码所有元素的非负整数数组password密码是password中所有元素拼接后得到的最小的一个数请编写一个程序返回这个密码。示例1:输入:password=[15,8,7]输出:"1578"示例2:输入:pas......
  • 题海拾贝:LCR018.验证回文串
               Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路!我的博客:<但凡.我的专栏:《编程之路》、《数据结构与算法之美》、《题海拾贝》欢迎点赞,关注!1、题目2、2、题解         这个题如果没有空格和符号的话,那就直接双指......