LeetCode题解(1473):给房子涂色III(Python)
发布日期:2021-06-29 20:15:22
浏览次数:2
分类:技术文章
本文共 2291 字,大约阅读时间需要 7 分钟。
题目:(困难)
标签:动态规划
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | O ( N 2 × T × M ) O(N^2×T×M) O(N2×T×M) | O ( N × M × T ) O(N×M×T) O(N×M×T) | 2124ms (58.73%) |
Ans 2 (Python) | |||
Ans 3 (Python) |
解法一:
class Solution: def minCost(self, houses: List[int], cost: List[List[int]], m: int, n: int, target: int) -> int: # 定义状态矩阵:i=当前房子的序数,j=上一个房子的颜色,k=当前街区数;dp[i][j][k]=最小成本 dp = [[[-1] * (target + 1) for _ in range(n)] for _ in range(m)] # 处理第一间房子的情况 if houses[0] == 0: # 如果第一间房子还没有被染色 for j in range(n): dp[0][j][1] = cost[0][j] else: # 如果第一间房子已经被染色 j = houses[0] - 1 dp[0][j][1] = 0 # 状态转移 for i in range(1, m): if houses[i] == 0: # 如果当前房子还没有被染色 for j2 in range(n): # 遍历当前房子可能的颜色 for k in range(1, target + 1): # 遍历街区总数 for j1 in range(n): # 遍历上一个房子的颜色 if j1 == j2: if dp[i - 1][j1][k] != -1: if dp[i][j2][k] == -1 or dp[i - 1][j1][k] + cost[i][j2] < dp[i][j2][k]: dp[i][j2][k] = dp[i - 1][j1][k] + cost[i][j2] else: if dp[i - 1][j1][k - 1] != -1: if dp[i][j2][k] == -1 or dp[i - 1][j1][k - 1] + cost[i][j2] < dp[i][j2][k]: dp[i][j2][k] = dp[i - 1][j1][k - 1] + cost[i][j2] else: # 如果当前房子已经被染色 j2 = houses[i] - 1 # 当前房子的颜色 for k in range(1, target + 1): # 遍历各个街区数 for j1 in range(n): # 遍历上一个房子的颜色 if j1 == j2: if dp[i - 1][j1][k] != -1: if dp[i][j2][k] == -1 or dp[i - 1][j1][k] < dp[i][j2][k]: dp[i][j2][k] = dp[i - 1][j1][k] else: if dp[i - 1][j1][k - 1] != -1: if dp[i][j2][k] == -1 or dp[i - 1][j1][k - 1] < dp[i][j2][k]: dp[i][j2][k] = dp[i - 1][j1][k - 1] # 返回最终结果 ans = [dp[-1][j][-1] for j in range(n) if dp[-1][j][-1] != -1] return min(ans) if ans else -1
转载地址:https://dataartist.blog.csdn.net/article/details/112522365 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月21日 00时37分11秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
研究知识追踪/学生模型的一些学校和人物
2019-04-30
简谈RSS——巧用Feed43制作自定义RSS源
2019-04-30
powershell 脚本压缩工具
2019-04-30
Windows下Pentaho Report Designer之运行配置
2019-04-30
【python数据可视化】穷逼买二手房历险记
2019-04-30
同构图、异构图、属性图、非显式图
2019-04-30
【GNN】task3-基于图神经网络的节点表征学习
2019-04-30
Python将字符串转为变量名的3种方法
2019-04-30
【GNN】task4-数据完整存储与内存的数据集类+节点预测与边预测任务实践
2019-04-30
powershell 解压RAR文件(简易版)
2019-04-30
记一次Tiny Tiny RSS魔改过程
2019-04-30
CMD批量转换GIF图片为PNG图片
2019-04-30
通过快捷方式快速更换桌面壁纸(必应每日壁纸)
2019-04-30
C#操作MySQL查询超时问题
2019-04-30
JavaScript——CodeMirror获取已存在的实例
2019-04-30
Java 发送HTTP或HTTPS请求获取网页码源(1)
2019-04-30
iText的使用(1)-- 组合图片生成PDF
2019-04-30
powershell 调用API显示或隐藏指定程序的主窗口
2019-04-30
powershell 结束进程的四种写法
2019-04-30
powershehll删除并重装打印机
2019-04-30