Leetcode 3429. Paint House IV

devtools/2025/1/21 17:21:50/
  • Leetcode 3429. Paint House IV
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3429. Paint House IV

1. 解题思路

这一题解法上就是一个动态规划的思路,由于题目有两个限制条件,即相邻不可以同色,以及前后同位置不可以同色,因此我们在迭代的时候需要从首尾同步考虑两两的配色组合,剩下的就是简单的动态规划遍历所有可能性即可。

2. 代码实现

给出python代码实现如下:

class Solution:def minCost(self, n: int, cost: List[List[int]]) -> int:@lru_cache(None)def dp(idx, prefix, suffix):if idx == n // 2:return 0i, j = idx, n-1-idxans = math.inffor c1 in range(3):for c2 in range(3):if c1 == c2 or c1 == prefix or c2 == suffix:continueans = min(ans, cost[i][c1] + cost[j][c2] + dp(idx+1, c1, c2))return ansreturn dp(0, -1, -1)

提交代码评测得到:耗时2108ms,占用内存143MB。


http://www.ppmy.cn/devtools/152387.html

相关文章

[c]可变参数函数

#include <stdio.h> #include <stdarg.h> void logMessage(const char *pFormat, ...) { // 定义一个 va_list 类型的变量 args 用于存储参数信息 va_list args; // 初始化 args 指向第一个未命名参数 va_start(args, pFormat); //…

嵌入式知识点总结 C/C++ 专题提升(一)-关键字

针对于嵌入式软件杂乱的知识点总结起来&#xff0c;提供给读者学习复习对下述内容的强化。 目录 1.C语言宏中"#“和"##"的用法 1.1.(#)字符串化操作符 1.2.(##)符号连接操作符 2.关键字volatile有什么含意?并举出三个不同的例子? 2.1.并行设备的硬件寄存…

大模型学习笔记 - 第一期 - Milvus向量数据库

大模型学习笔记 - 向量数据库 目录 大模型学习笔记 - 向量数据库传统文字检索(无嵌入)面临的困境1. 用户和商户表述差异2. 不同语种的表述差异3. 不同背景下的音译表述差异 向量检索向量化服务 参考 传统文字检索(无嵌入)面临的困境 1. 用户和商户表述差异 ​ 如果商户维护了…

在 Web 应用中集成多种地图 API 的实现与管理

在 Web 开发中&#xff0c;集成地图服务是常见的需求之一&#xff0c;尤其是在需要定位、路线规划或展示地理信息的应用中。常见的地图 API 服务包括百度地图、谷歌地图和雅虎地图等。在这篇文章中&#xff0c;我们将深入探讨如何在 Web 应用中同时集成多个地图 API&#xff0c…

Windows电脑安装USB Redirector并实现内外网跨网USB共享通信访问

文章目录 前言1. 安装下载软件1.1 内网安装使用USB Redirector1.2 下载安装cpolar内网穿透 2. 完成USB Redirector服务端和客户端映射连接3. 设置固定的公网地址 前言 我们每天都在与各种智能设备打交道&#xff0c;从手机到电脑&#xff0c;再到各种外设&#xff0c;它们已经…

全自动化河道水位监测系统:实时传输与远程监控

全自动化河道水位监测系统是利用先进的自动化技术和智能化设备&#xff0c;实现河道水位的实时监测、数据采集、处理分析、传输与远程监控的一体化解决方案。该系统的设计目标是确保河道水位监测的精准性和及时性&#xff0c;为防洪抗旱、水资源管理及环境保护等提供科学的数据…

LeetCode hot 力扣100 LRU 缓存

splice 是 C STL 的 std::list 提供的一个成员函数&#xff0c;用于高效地将一个或多个元素从一个链表移动到另一个链表&#xff0c;或在同一链表内重新排列元素。它不涉及数据的拷贝&#xff0c;而是直接修改链表节点的指针&#xff0c;因此操作非常高效。splice 的功能splice…

windows下使用docker执行器并配置 hosts 解析

本篇目录 1. 问题背景2. 环境准备2.1 云上开通windows 2022 英文版机器2.1.1 安装 git2.1.2 安装 runner2.1.3 装docker2.1.4 注册runner并使用docker执行器 3. 项目信息3.1 编写window bat脚本3.2 项目.gitlab-ci.yml文件 4. 测试结论4.1 运行流水线 5. troubleshooting问题1&…