DeepSeek    LeetCode 3897. 连接二进制片段得到的最大值 Python3实现
这道题的核心是贪心排序Python实现的关键在于自定义排序规则。核心解题思路每个片段形如 111...000...nums1[i] 个 1 后跟 nums0[i] 个 0。排序规则1. 纯 1 片段优先nums0[i] 0 的片段全由 1 组成2. 1 多的靠前1 的数量越多高位 1 越多3. 1 相同时0 少的靠前Python3 代码实现pythonclass Solution:def maxValue(self, nums1: List[int], nums0: List[int]) - int:MOD 10**9 7n len(nums1)# 1. 创建片段列表 (ones, zeros)fragments list(zip(nums1, nums0))# 2. 自定义排序使用 functools.cmp_to_keyfrom functools import cmp_to_keydef compare(a, b):ones_a, zeros_a aones_b, zeros_b b# 纯 1 片段优先if zeros_a 0 and zeros_b 0:return ones_b - ones_a # 1 多的在前if zeros_a 0:return -1if zeros_b 0:return 1# 都含 01 多的在前if ones_a ! ones_b:return ones_b - ones_a# 1 相同0 少的在前return zeros_a - zeros_bfragments.sort(keycmp_to_key(compare))# 3. 拼接并计算结果ans 0for ones, zeros in fragments:# 追加 ones 个 1for _ in range(ones):ans (ans * 2 1) % MOD# 追加 zeros 个 0for _ in range(zeros):ans (ans * 2) % MODreturn ans更简洁的实现使用 key 参数如果不想用 cmp_to_key可以构造一个复合的排序键pythonclass Solution:def maxValue(self, nums1: List[int], nums0: List[int]) - int:MOD 10**9 7fragments list(zip(nums1, nums0))# 排序键# 1. 是否纯 1纯 1 优先# 2. 1 的数量降序# 3. 0 的数量升序fragments.sort(keylambda x: (x[1] ! 0, # False纯1排在 True含0前面-x[0], # 1 多的在前x[1] # 0 少的在前))ans 0for ones, zeros in fragments:# 批量处理优化避免逐位循环# 先处理 1ans (ans * pow(2, ones, MOD) (pow(2, ones, MOD) - 1)) % MOD# 再处理 0ans (ans * pow(2, zeros, MOD)) % MODreturn ans批量优化版本处理大片段当 nums1[i] 或 nums0[i] 很大时逐位循环可能较慢可以用幂运算批量处理pythonclass Solution:def maxValue(self, nums1: List[int], nums0: List[int]) - int:MOD 10**9 7fragments list(zip(nums1, nums0))# 排序同上fragments.sort(keylambda x: (x[1] ! 0, -x[0], x[1]))ans 0for ones, zeros in fragments:# 追加 ones 个 1ans ans * 2^ones (2^ones - 1)if ones 0:pow2_ones pow(2, ones, MOD)ans (ans * pow2_ones (pow2_ones - 1)) % MOD# 追加 zeros 个 0ans ans * 2^zerosif zeros 0:ans (ans * pow(2, zeros, MOD)) % MODreturn ans测试用例python# 测试sol Solution()# 示例 1print(sol.maxValue([1, 1], [1, 1])) # 输出61010 1010 10但 1100 不存在# 实际排序后 [1,1] 和 [1,1] 顺序不影响1010 10# 示例 2print(sol.maxValue([2, 1], [0, 1]))# fragments: [2,0] 11, [1,1] 10# 排序后[11, 10] - 1110 14# 输出14# 示例 3print(sol.maxValue([1, 2, 1], [2, 0, 1]))# fragments: [1,2]100, [2,0]11, [1,1]10# 排序[11, 10, 100] - 1110100 116# 输出116排序规则证明简洁版比较两个片段 A 和 B我们需要判断 AB 和 BA 哪个更大· 如果 A 全是 1AB 前缀是 1BA 前缀是 B 的第一个字符可能是 0所以 A 应在前· 如果都有 0比较 1 的数量多的在前因为高位 1 越多越大· 如果 1 数量相同0 少的在前因为 0 越早出现字典序越小复杂度分析· 时间复杂度O(n log n L)其中 L 是总长度sum(nums1) sum(nums0)· 空间复杂度O(n)用于存储片段列表关键注意事项1. 取模运算结果要对 10^97 取模2. 批量处理使用 pow(2, k, MOD) 可以快速处理连续的 1 或 03. 排序稳定性Python 的 sort 是稳定的但建议明确定义所有比较规则如果还有疑问欢迎继续追问

相关新闻

Tiago Dual机器人四视角联合仿真:Isaac Sim+ROS 2+RViz 2环境搭建全攻略

Tiago Dual机器人四视角联合仿真:Isaac Sim+ROS 2+RViz 2环境搭建全攻略

1. 项目缘起:为什么需要为Tiago Dual配置四视角联合仿真? 如果你正在研究移动机器人,尤其是双臂移动机器人平台,那么Tiago Dual这个名字你一定不陌生。作为PAL Robotics公司推出的明星产品,Tiago Dual集成了移动底盘、…

2026/10/17 7:34:22 阅读更多 →
借鉴MTK光源色温氛围色保留逻辑实现加权平均简化自动白平衡氛围色保留方法介绍

借鉴MTK光源色温氛围色保留逻辑实现加权平均简化自动白平衡氛围色保留方法介绍

目录 一、前置基础约束 1. Paxel 生成完整数据链路(原厂标准流程) 2. 移植逻辑边界说明 3. 两套色度平面核心区别汇总 二、步骤 1:标定 T 空间日光中性基准参考点 三、步骤 2:定义 Dil/Dgm 二维色度偏移量 四、步骤 3:设定偏移阈值与校正权重映射规则 4.1 配置两组…

2026/10/17 7:34:22 阅读更多 →
Python零基础高效学习路径:从环境搭建到实战项目避坑指南

Python零基础高效学习路径:从环境搭建到实战项目避坑指南

如果你在B站、知乎、CSDN等平台搜索“Python零基础教程”,大概率会看到两类内容:一类是标题夸张、动辄“400集”、“最全最细”、“2026最新版”的合集,另一类是真正能带你从零开始、写出第一行代码的实战指南。前者往往让你陷入“收藏了就是…

2026/10/17 7:37:20 阅读更多 →

最新新闻

ST-GCN骨骼动作识别实战:从环境配置到毕设级部署

ST-GCN骨骼动作识别实战:从环境配置到毕设级部署

简介:本资源是一套基于时空图卷积网络(ST-GCN)实现骨骼动作识别的完整毕业设计项目,面向计算机、人工智能及相关专业本科生,专为毕设开发、课程设计与深度学习实战训练打造。项目已通过导师审核并获98分高分评价&#…

2026/10/18 5:43:43 阅读更多 →
大数据场景下的数据清洗全攻略:从质量维度到管道实践

大数据场景下的数据清洗全攻略:从质量维度到管道实践

干数据这行的人,大概都有过这种经历:任务名写着“分析用户行为”,开工第一周却在清空表、补字段、调格式;跑完模型看指标,训练集漂亮得不行,一到验证集就崩盘,最后查来查去,问题出在…

2026/10/18 5:43:43 阅读更多 →
DSP28335上UCOSII移植与CANopen协议栈融合实践

DSP28335上UCOSII移植与CANopen协议栈融合实践

简介:面向数字信号处理器嵌入式开发者的实时操作系统与工业总线应用资料包,以TI TMS320F28335为平台,完整演示uC/OS-II移植流程以及基于CANOpen协议的Copley驱动器控制方法。压缩包共包含264个文件,整体约1.64MB,文件类…

2026/10/18 5:43:43 阅读更多 →
瞬变电磁测深原理与数据处理:从瞬态响应到视电阻率反演

瞬变电磁测深原理与数据处理:从瞬态响应到视电阻率反演

1. 从“看电阻率”到“看时间”:瞬变电磁法的底层逻辑做物探的人都知道,直流电法看的是稳定电流场,频率域电磁法看的是谐变场,而瞬变电磁测深(TEM)完全换了条思路——它不靠稳态,靠的是“断电后…

2026/10/18 5:43:43 阅读更多 →
Flutter for OpenHarmony实战:剧本杀记录页设计与踩坑记录

Flutter for OpenHarmony实战:剧本杀记录页设计与踩坑记录

做这个“Flutter for OpenHarmony 剧本杀组队App”的记录展示功能,前后磨了两个多星期,踩了不少OpenHarmony生态里特有的坑。这篇文章把游戏记录展示从数据模型、本地存储、列表UI到状态管理的实现过程完整梳理一遍,重点说清楚“为什么这么设…

2026/10/18 5:43:43 阅读更多 →
俳句翻译实战拆解:从17音、季语到切れ字的基本功

俳句翻译实战拆解:从17音、季语到切れ字的基本功

把一首十七个音节的日本俳句翻译成中文,好的译文不是让你读通,而是让你在句号之后多停一秒。我最近在整理一份署名译者的《芭蕉俳句》四首选原译稿,所谓原译,就是直接从芭蕉的日语原文译出,不经过英译本或者其他语种的…

2026/10/18 5:42:43 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →