Kimi    LeetCode 3801. 合并有序列表的最小成本 Python3实现
以下是 LeetCode 3801. 合并有序列表的最小成本 的 Python3 实现方法签名为 def minMergeCost(self, lists: List[List[int]]) - int。核心思路- 关键观察任意子集合并后的有序列表其中位数只取决于该子集包含哪些原始列表与合并顺序无关。- Meet-in-the-Middle 状态压缩 DP1. 将 n ≤ 12 个列表平分为前后两半分别预处理所有子集合并后的有序数组。2. 对任意 mask利用「两个有序数组的中位数」算法LeetCode 4 变体在 O(log L) 内求出中位数。3. 子集 DPdp[mask] 表示将 mask 对应列表合并为一个的最小成本。枚举所有非空真子集转移。- 复杂度时间 O(2^n · L 3^n)空间 O(2^n L)其中 L ≤ 2000 为总长度。pythonfrom typing import Listclass Solution:def minMergeCost(self, lists: List[List[int]]) - int:n len(lists)def merge(a: List[int], b: List[int]) - List[int]:合并两个有序数组i j 0res []while i len(a) and j len(b):if a[i] b[j]:res.append(a[i])i 1else:res.append(b[j])j 1if i len(a):res.extend(a[i:])if j len(b):res.extend(b[j:])return resdef calc_sorted(sub_lists: List[List[int]]) - List[List[int]]:预计算 sub_lists 所有子集合并后的有序数组m len(sub_lists)u 1 msorted_arr [[] for _ in range(u)]for i in range(m):high_bit 1 ifor s in range(high_bit):sorted_arr[high_bit | s] merge(sub_lists[i], sorted_arr[s])return sorted_arrdef find_median_sorted_arrays(a: List[int], b: List[int]) - int:找两个有序数组合并后的下中位数。偶数长度时取左侧中间元素题目定义。if len(a) len(b):a, b b, am, n_len len(a), len(b)left, right 0, mwhile left right:mid (left right) // 2j (m n_len 1) // 2 - mid - 2if j 1 n_len and a[mid] b[j 1]:right midelse:left mid 1i left - 1j (m n_len 1) // 2 - i - 2if i 0:return b[j]if j 0:return a[i]return max(a[i], b[j])# 1. 分治预处理前后两半的所有子集合并结果m n // 2sorted1 calc_sorted(lists[:m])sorted2 calc_sorted(lists[m:])u 1 nhalf (1 m) - 1# 2. 预计算每个 mask 的中位数和总长度median [0] * ufor mask in range(1, u):median[mask] find_median_sorted_arrays(sorted1[mask half],sorted2[mask m])# 3. 子集 DPINF float(inf)dp [0] * ufor mask in range(u):if mask (mask - 1) 0: # 0 或单个列表无需合并continuedp[mask] INFsub (mask - 1) mask# 只枚举 sub other 避免重复计算对称性while sub (mask ^ sub):other mask ^ subdp[mask] min(dp[mask],dp[sub] dp[other] abs(median[sub] - median[other]))sub (sub - 1) mask# 加上当前合并的长度成本len(sub) len(other) len(mask)dp[mask] len(sorted1[mask half]) len(sorted2[mask m])return dp[u - 1]验证结果输入 期望 实际[[1,3,5],[2,4],[6,7,8]] 18 18[[1,1,5],[1,4,7,8]] 10 10[[1],[3]] 4 4[[1],[1]] 2 2

相关新闻

MapStruct深度解析:Java对象映射的高性能编译时解决方案与工程实践

MapStruct深度解析:Java对象映射的高性能编译时解决方案与工程实践

1. 项目概述:为什么MapStruct是Java对象映射的“瑞士军刀” 在Java后端开发里,对象之间的属性拷贝,也就是我们常说的“对象映射”,是一个高频到几乎无法回避的操作。从Controller层的DTO到Service层的BO,再到DAO层的En…

2026/8/6 23:09:58 阅读更多 →
微软CTO神操作:让画图软件以35帧每秒“玩”《毁灭战士》!

微软CTO神操作:让画图软件以35帧每秒“玩”《毁灭战士》!

【导语:过去几年画图应用已有多项实用升级,而微软Azure首席技术官马克拉希诺维奇找到了让画图软件“玩”《毁灭战士》的办法,虽非真正运行游戏,但能以每秒35帧流畅加载渲染画面。】画图软件的新奇玩法在画图应用不断升级的背景下&…

2026/8/6 20:51:49 阅读更多 →
浪潮服务器CentOS 7安装全攻略:从RAID配置到系统部署

浪潮服务器CentOS 7安装全攻略:从RAID配置到系统部署

1. 浪潮服务器上安装CentOS 7:从硬件到系统的完整旅程如果你刚拿到一台崭新的浪潮服务器,看着机箱上闪烁的指示灯和前面板密密麻麻的接口,第一反应可能是兴奋,紧接着可能就是一丝迷茫:这台性能强大的“铁疙瘩”&#x…

2026/8/6 12:26:57 阅读更多 →

最新新闻

PyDracula架构深度解析:现代Python GUI框架的技术实现与设计哲学

PyDracula架构深度解析:现代Python GUI框架的技术实现与设计哲学

PyDracula架构深度解析:现代Python GUI框架的技术实现与设计哲学 【免费下载链接】Modern_GUI_PyDracula_PySide6_or_PyQt6 项目地址: https://gitcode.com/gh_mirrors/mo/Modern_GUI_PyDracula_PySide6_or_PyQt6 项目价值定位:解决Python桌面应…

2026/8/7 2:38:34 阅读更多 →
三步实现飞书文档高效转换:Cloud Document Converter终极指南

三步实现飞书文档高效转换:Cloud Document Converter终极指南

三步实现飞书文档高效转换:Cloud Document Converter终极指南 【免费下载链接】cloud-document-converter Convert Lark Doc to Markdown 项目地址: https://gitcode.com/gh_mirrors/cl/cloud-document-converter 你是否曾经为将飞书文档转换为Markdown格式而…

2026/8/7 2:38:34 阅读更多 →
视频下载助手:3分钟掌握全网视频下载的终极方案

视频下载助手:3分钟掌握全网视频下载的终极方案

视频下载助手:3分钟掌握全网视频下载的终极方案 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经遇到过这样的困境&…

2026/8/7 2:38:34 阅读更多 →
技术赋能效率革命:自动化脚本与工具链如何重塑时间管理

技术赋能效率革命:自动化脚本与工具链如何重塑时间管理

这次我们来看一个关于时间感知与效率提升的技术项目。虽然标题“如何把暑假变长100倍?”听起来像是一个生活技巧或哲学问题,但在技术领域,它通常指向一个核心议题: 如何通过技术工具和方法,在单位时间内创造更高的价值…

2026/8/7 2:38:34 阅读更多 →
3D打印跑到1000mm/s,到底靠不靠谱?我们找10位用户实测

3D打印跑到1000mm/s,到底靠不靠谱?我们找10位用户实测

现在的FDM 3D打印机,速度一个比一个喊得快。300mm/s、600mm/s,甚至1000mm/s,数字看起来很猛。但普通用户真正关心的,并不是参数表上写得有多快,而是实际打印时到底能跑多快,以及速度拉高之后,模…

2026/8/7 2:38:34 阅读更多 →
数字绘画全流程拆解:从线稿到光影氛围的实战指南

数字绘画全流程拆解:从线稿到光影氛围的实战指南

睡过头的花店老板娘:从线稿到光影氛围的完整数字绘画过程拆解 你是不是也遇到过这种情况:脑子里有一个绝妙的画面,但打开绘画软件后,却不知道从哪里下笔?或者画到一半,总觉得色彩灰暗、光影平淡&#xff0c…

2026/8/7 2:37:34 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →