【动态规划-中等】剑指 Offer II 091. 粉刷房子(256.粉刷房子)

Leetcode题目之求解数组之间的最大距离 打算从今天开始开辟一个LeetCode专栏,收集并讲解LeetCode网站的一些题目。 今天的题目是LeetCode第37期的第一个题目,比较简单。Given m arrays, and each array is sorted in ascending order. Now you can pick up two integers from two different arrays (each 阅读详情

【题目】
假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。

当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n x 3 的正整数矩阵 costs 来表示的。

例如,costs[0][0] 表示第 0 号房子粉刷成红色的成本花费;costs[1][2] 表示第 1 号房子粉刷成绿色的花费,以此类推。

请计算出粉刷完所有房子最少的花费成本。

示例 1:

输入: costs = [[17,2,17],[16,16,5],[14,3,19]]
输出: 10
解释: 将 0 号房子粉刷成蓝色,1 号房子粉刷成绿色,2 号房子粉刷成蓝色。
最少花费: 2 + 5 + 3 = 10。

示例 2:

输入: costs = [[7,6,2]]
输出: 2

提示:

costs.length == n
costs[i].length == 3
1 <= n <= 100
1 <= costs[i][j] <= 20

注意:本题与主站 256 题相同

【代码】
【方法1:动态规划】
在这里插入图片描述在这里插入图片描述

class Solution:
    def minCost(self, costs: List[List[int]]) -> int:
        #n排房子即房子的数量
        num_house=len(costs)
        for i in range(1,num_house):
            for j in range(3):
                temp=copy.copy(costs[i-1])
                temp[j]=float('inf')
                costs[i][j]+=min(temp)
        return min(costs[-1])

【写法2:dp】
在这里插入图片描述

class Solution:
    def minCost(self, costs: List[List[int]]) -> int:
        #n排房子即房子的数量
        num_house=len(costs)
        for i in range(1,num_house):
            for j in range(3):
                num=costs[i-1][j]
                costs[i-1][j]=float('inf')
                costs[i][j]+=min(costs[i-1])
                costs[i-1][j]=num
        return min(costs[-1])
算法复习——动态规划篇之最大子数组问题 算法复习——动态规划篇之最大子数组问题 以下内容主要参考中国大学MOOC《算法设计与分析》,墙裂推荐希望入门算法的童鞋学习! 1. 问题背景 子数组:数组中连续的一段序列,例如X[3..7]X[3..7]X[3..7]; 子数组和:子数组中元素的求和,X[3..7]X[3..7]X[3..7]的和就是3+5−4+3+2=93+5-4+3+2=93+5−4+3+2=9; ​ 那么,问题就是如何寻找数组XXX中最大的非空子数组? 2. 问题定义 最大子数组问题(Max Continuous Subarr 阅读详情

相关推荐

leetcode265. 粉刷房子 II(Python3、c++)

文章目录leetcode265. 粉刷房子 II方法一:动态规划(未优化)思路:代码:Python3:cpp:结果:方法二:动态规划(优化)思路:代码:Python3:cpp:结果: leetcode265. 粉刷房子 II 假如有一排房子,共 n 个,每个房子可以被粉刷成 k 种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n*k 的矩阵来表示的。 例如,co

weixin_43422466的博客 1090

624. 数组列表中的最大距离

624. 数组列表中的最大距离 给定 m 个数组,每个数组都已经按照升序排好序了。现在你需要从两个不同的数组中选择两个整数(每个数组选一个)并且计算它们的距离。两个整数 a 和 b 之间的距离定义为它们差的绝对值 ∣a−b∣|a-b|∣a−b∣ 。你的任务就是去找到最大距离。 示例 1: 输入: [[1,2,3], [4,5], [1,2,3]] 输出: 4 解释: 一种得到答案 4 的方法是从第一个数组或者第三个数组中选择 1,同时从第二个数组中选择 5 。 解法一:暴力(TLE) 思路 很容易想

不搞数学的汤老师 2819

基于Matlab与Bladed联合仿真的交互软件设计

基于Matlab与Bladed的交互软件设计

weixin_45014222的博客 816

【LeetCode256】粉刷房子

1.题目描述 假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个n x 3的矩阵来表示的。 例如,costs[0][0] 表示第 0 号房子粉刷成红色的成本花费;costs[...

u011646912的博客 1455

多普勒效应及多普勒频移的简单推导

多普勒频移的简单推导

m0_47867419的博客 3万+

【UE4】PMC程序化生成戈德堡多面体详解(六边形星球)

游戏实机录屏 【魔方超新星】30天独立开发PCG Minigame《盖亚计划》作品展示,尚有不足,大佬轻喷 目录 游戏实机录屏 一、简介 二、设计思路 2.1 Disco Ball 2.2 Fibonacci Sphere 2.3 Goldberg Polyhedron 2.3.1 细分+对偶(最终方案) 2.3.2 对偶+截角(更优) 三、参考文献 一、简介 在制作Minigame初期,游戏风格想模仿《文明6》与《Polygonal Planet Proje...

ColorGalaxy 5932

LeetCode 剑指 Offer II 091.粉刷房子 - 原地修改

【LetMeFly】剑指 Offer II 091.粉刷房子 - 原地修改 力扣题目链接:https://leetcode.cn/problems/JEj789/ 假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n x 3 的正整数矩阵 costs 来表示的。...

<font color="Pink">Tisfy的博客</font> 453

人工智能学习之机器人路径规划优化

A* AStar 人工智能 机器人路径规划优化

RongLin02的博客 7073

Python描述 LeetCode 剑指 Offer II 091. 粉刷房子

假如有一排房子,共 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 的正整数矩阵 来表示的。例如, 表示第 0 号房子粉刷成红色的成本花费; 表示第 1 号房子粉刷成绿色的花费,以此类推。请计算出粉刷完所有房子最少的花费成本。示例 1: 示例 2: 提示:注意:本题与主站 256 题相同:https://leet

一起加油 1278

Cadence Allegro 17.4 保姆级教程:PCB位号重排与反标回原理图完整避坑指南

本文详细解析了Cadence Allegro 17.4中PCB位号重排与反标回原理图的全流程,包括安全工程准备、智能重排策略和反标黄金法则。特别针对芯片封装协同设计(Co-Design)场景,提供可追溯的版本管理和故障恢复方案,帮助工程师避免常见位号陷阱,确保设计文件一致性。

weixin_30613433的博客 441

笔试题-2023-星宸-数字IC设计【纯净题目版】

4 笔试题-2023-星宸-数字IC设计【纯净题目版】

w0shishabi的博客 1172

[LeetCode解题报告] 剑指 Offer II 091. 粉刷房子

简单dp

liuliangcan的博客 106

【RT-DETR涨点改进】独家小目标涨点改进篇 | TGRS 2025 | RT-DETR引入ABRNet小目标检测顶刊中的:ARF自适应性感受野和MCA双向交叉轴注意力,适合小目标检测有效涨点

本文提出了一种改进的RT-DETR小目标检测方法,通过集成自适应感受野模块(ARF)和多尺度交叉轴注意力模块(BC)来提升检测性能。ARF模块采用多种卷积核动态调整感受野,有效捕获多尺度目标特征并减少背景干扰;BC模块通过多尺度交叉轴注意力机制增强全局信息提取和特征融合能力。实验表明,该方法在复杂背景下显著提升了红外小目标检测的精度和效率,同时降低了计算开销。文章详细介绍了模块结构、原理及实现代码,并提供了多种改进配置方案,为小目标检测任务提供了有效的解决方案。

Ai缝合怪、助力小伙伴高效发论文 570

剑指 Offer II 091. 粉刷房子(LeetCode 256)

假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n x 3 的正整数矩阵 costs 来表示的。 例如,costs[0][0] 表示第 0 号房子粉刷成红色的成本花费;costs[1][2] 表示第 1 号房子粉刷成绿色的花费,以此类推。 请计算出粉刷完所有房子最少的花费成本。 题解 题解转

Helene1996的博客 132

最新Python爬虫实战(入门爬虫篇)——案例8:图书网畅销榜数据采集(详细爬虫思路截图+抓包动图演示+完整爬虫代码+详细注释)

本次案例通过 Python 爬虫技术,成功实现了对图书网畅销榜多页数据的批量爬取与 Excel 保存。代码采用模块化设计,包含分页参数构造、API 接口请求、JSON 数据解析、Excel 数据持久化等完整流程;通过配置模拟浏览器的请求头,有效规避基础反爬策略,保证请求的稳定性。整个爬虫逻辑遵循 “分页遍历 → 接口请求 → JSON 解析 → 提取图书信息 → 保存到 Excel” 的标准流程,与电商类接口爬取范式高度一致。

努力让自己发光,对的人才能迎着光而来 29万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LeetCode 256 / 剑指 Offer II 091 粉刷房子 [中等][DP]

LeetCode 256 / 剑指 Offer II 091 粉刷房子 [中等][DP]

JalanChao的博客 204

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【剑指 Offer II】 091. 粉刷房子

题目: 假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n x 3 的正整数矩阵 costs 来表示的。 例如,costs[0][0] 表示第 0 号房子粉刷成红色的成本花费;costs[1][2] 表示第 1 号房子粉刷成绿色的花费,以此类推。 请计算出粉刷完所有房子最少的花费成本。 示例

漆黑梦工厂 147

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

一刷292-dp-剑指 Offer II 091. 粉刷房子m(同:256plus)

题目: 假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种, 你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。 每个房子粉刷成不同颜色的花费是以一个 n x 3 的正整数矩阵 costs 来表示的。 例如,costs[0][0] 表示第 0 号房子粉刷成红色的成本花费; costs[1][2] 表示第 1 号房子粉刷成绿色的花费,以此类推。 请计算出粉刷完所有房子最少的花费成

唐宋元明清的博客 111

leetcode 算法题624 (简单158) 数组列表中的最大距离

leetcode 算法题624 (简单158) 数组列表中的最大距离 题目介绍 给定 m 个数组, 每个数组都已经按照升序排好序了。现在你需要从两个不同的数组中选择两个整数 (每个数组选一个) 并且计算它们的距离。 两个整数 a 和 b 之间的距离定义为它们差的绝对值 |a-b| 。 你的任务就是去找到最大距离 ...

FYuu95100的博客 3544

Python实现归并排序(合并排序)

这两天在复习算法考试,抽着时间实现了一下里面的代码,今天实现的是使用了分治思想的归并排序算法(合并排序)。

Paul_wang的博客 1644

数组和字符串

给你一个的整数数组 nums, 将该数组重新排序后使 nums[0] <= nums[1] >= nums[2] <= nums[3]...个数组,每个数组都已经按照升序排好序了。现在你需要从两个不同的数组中选择两个整数(每个数组选一个)并且计算它们的距离。1.624. 数组列表中的最大距离。之间的距离定义为它们差的绝对值。你的任务就是去找到最大距离。输入数组总是有一个有效的答案。

m0_73845862的博客 369

3.数组算法、动态规划

3.数组算法、动态规划

感谢关注-最近在编写开源的自动化测试框架还没整理完 1448

LeetCode解题思路之Maximum Distance in Arrays

##问题描述 Given m arrays, and each array is sorted in ascending order. Now you can pick up two integers from two different arrays (each array picks on...

chugang1656的博客 346

滚动数组-动态规划之-不同路径 II_20230421

滚动数组, 动态规划,算法,C语言

Jasonchen1224的博客 1070

动态规划-数组

题目列表leetcoe 面试题 16.17. 42.连续数列最大和leetcode.1143. 最长公共子序列leetcode. 300最长上升子序列数组和凑数字leetcode. 三步问题 leetcoe 面试题 16.17. 42.连续数列最大和 题目 给定一个整数数组,找出总和最大的连续数列,并返回总和。 示例 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 代码 class Solution { public:

zhaoxiaoba的博客 1234

数学规划

优化问题的三要素: 决策变量 目标函数 约束条件 类型有: 连续优化: 线性规划(LP):目标和约束函数均为线性函数 非线性规划(NLP):目标或约束中存在非线性函数 二次规划(QP):目标为二次函数,约束为线性函数 离散优化: 整数规划(IP):决策变量(全部或部分)为整数 整数线性规划(ILP), 整数非线性规划(INLP) 纯整数规划(PIP),混合整数规划(MIP) 一般整数规划,0-

karry_zzj的博客 5252
上一篇: 【动态规划-中等】剑指 Offer II 098. 路径的数目(二维动态规划)
下一篇: 【动态规划-中等】剑指 Offer II 100. 三角形中最小路径之和
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值