动态规划算法-简单多状态dp问题:14.粉刷房子

题目链接:LCR 091. 粉刷房子(中等)

算法原理:

解法:动态规划

Java代码:

java 复制代码
/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 王洋
 * Date: 2025-10-19
 * Time: 19:07
 */
class Solution {
    //LCR091.粉刷房子
    //吴小哲跟我写的一样
    //看完算法原理后自己写的,除了一开始忘记了下标映射关系导致的越界,其余一遍过
    public int minCost(int[][] costs) {
        int n=costs.length;
        int[][] dp=new int[n+1][3];
        //都是0,默认初始化已经帮我们搞定了
        for(int i=1;i<=n;i++){
            dp[i][0]=Math.min(dp[i-1][1],dp[i-1][2])+costs[i-1][0];
            dp[i][1]=Math.min(dp[i-1][0],dp[i-1][2])+costs[i-1][1];
            dp[i][2]=Math.min(dp[i-1][1],dp[i-1][0])+costs[i-1][2];
        }
        return Math.min(Math.min(dp[n][0],dp[n][1]),dp[n][2]);
    }
}
相关推荐
kkeeper~16 分钟前
0基础C语言积跬步之字符函数与字符串函数(上)
c语言·开发语言
黎阳之光20 分钟前
黎阳之光:以视频孪生重构智慧医院信息化,打造高标项目核心竞争力
大数据·人工智能·物联网·算法·数字孪生
丷丩1 小时前
三级缓存下MVT地图瓦片服务性能优化策略
算法·缓存·性能优化·gis·geoai-up
hhb_6181 小时前
Swift核心技术难点与实战案例解析
开发语言·ios·swift
m0_629494731 小时前
LeetCode 热题 100-----25.回文链表
数据结构·算法·leetcode·链表
一楼的猫1 小时前
从工具链视角对比:番茄作家助手 vs 第三方写作辅助方案
java·服务器·开发语言·前端·学习·chatgpt·ai写作
程序leo源1 小时前
Qt窗口详解
开发语言·数据库·c++·qt·青少年编程·c#
likerhood2 小时前
Java static 关键字从浅入深
java·开发语言
猫猫的小茶馆2 小时前
【Python】函数与模块化编程
linux·开发语言·arm开发·驱动开发·python·stm32
计算机安禾2 小时前
【c++面向对象编程】第38篇:设计原则(二):里氏替换、接口隔离与依赖倒置
开发语言·c++