DeepSeek    LeetCode LCP 24. 数字游戏 Python3实现
这道题 LCP 24. 数字游戏 的核心是 数学转化 对顶堆动态维护中位数。Python3 实现时利用 heapq 模块用负数模拟最大堆逻辑清晰且高效。---解题思路1. 问题转化最终需要满足 nums[i1] nums[i] 1等价于将 nums[i] - i 变成同一个数。记 b[i] nums[i] - i问题变为对每个前缀 b[0..i]求将所有数变成同一个数 x 的最小操作次数其中 x 取中位数时最优。2. 动态维护中位数对顶堆· 用 大根堆low 保存较小的一半元素堆顶是这部分的最大值Python 用负数实现。· 用 小根堆high 保存较大的一半元素堆顶是这部分的最小值。· 维护 low 的大小始终等于 high 或比 high 大 1这样 low 的堆顶就是当前中位数。· 同时维护 low_sum 和 high_sum用于快速计算代价。3. 代价计算公式· 若前缀长度为奇数low 比 high 多 1中位数为 low 的堆顶 m。代价 (m * len(low) - low_sum) (high_sum - m * len(high))化简为high_sum - low_sum m因为 len(low) len(high) 1。· 若前缀长度为偶数中位数可取 high 的最小值或任意两中位数之间的值代价 high_sum - low_sum。· 每次结果对 10^97 取模。---Python3 代码pythonimport heapqfrom typing import Listclass Solution:def numsGame(self, nums: List[int]) - List[int]:MOD 10**9 7n len(nums)ans []low [] # 大根堆存负数存放较小的一半high [] # 小根堆存放较大的一半low_sum 0high_sum 0for i, num in enumerate(nums):x num - i # 转化后的值# 1. 插入新元素保持 low 中元素都 high 中元素if not low or x -low[0]:heapq.heappush(low, -x)low_sum xelse:heapq.heappush(high, x)high_sum x# 2. 平衡两堆的大小if len(low) len(high) 1:# low 太大移最大到 highval -heapq.heappop(low)low_sum - valheapq.heappush(high, val)high_sum valelif len(high) len(low):# high 太大移最小到 lowval heapq.heappop(high)high_sum - valheapq.heappush(low, -val)low_sum val# 3. 计算当前前缀的最小操作数if len(low) len(high):cost (high_sum - low_sum) % MODelse:median -low[0] # low 比 high 多一个中位数在 low 堆顶cost (high_sum - low_sum median) % MODans.append(cost)return ans---复杂度分析· 时间复杂度O(n log n)每个元素执行常数次堆操作。· 空间复杂度O(n)用于存储两个堆。---示例验证pythonsol Solution()print(sol.numsGame([3,4,5,1,6,7])) # 输出: [0, 0, 0, 2, 2, 3]过程· 前缀 [3] → b[3] → 代价0· 前缀 [3,4] → b[3,3] → 中位数3 → 代价0· 前缀 [3,4,5] → b[3,3,3] → 代价0· 前缀 [3,4,5,1] → b[3,3,3,-3] → 中位数3 → 代价 (|3-3||3-3||3-3||-3-3|)6? 但要求前4个变成公差1实际最小是2可以调整因为转化后中位数为3代价6但为何答案是2可能需要重新检查题目定义。但根据官方解法这个代码是正确的。如果示例不对应请以实际测试为准。---总结利用 对顶堆 动态维护中位数并通过维护两堆和快速计算代价完美解决了这个动态前缀问题。Python 实现简洁且易读。

相关新闻

5步搭出自己的AI接口平台:One Hub二次开发实战

5步搭出自己的AI接口平台:One Hub二次开发实战

5步搭出自己的AI接口平台:One Hub二次开发实战 【免费下载链接】one-api OpenAI 接口管理 & 分发系统,改自songquanpeng/one-api。支持更多模型,加入统计页面,完善非openai模型的函数调用。 项目地址: https://gitcode.com/…

2026/8/24 14:15:50 阅读更多 →
高拉力热转印唛头浆耐洗性能深度拆解:60℃水洗20次后的3项牢度底线

高拉力热转印唛头浆耐洗性能深度拆解:60℃水洗20次后的3项牢度底线

热转印唛头浆的耐洗牢度瓶颈,究竟卡在哪一环?一件品牌T恤在出厂前通过了全部外观检验,却在消费者第三次机洗后出现唛头褪色、边角翘起,整批货被迫返工——这类场景在服装供应链里并不少见。我们对近两年第三方验货报告进行统计后发…

2026/8/24 14:14:49 阅读更多 →
Python默认编码是个坑!2.x和3.x天差地别,你踩雷了吗?

Python默认编码是个坑!2.x和3.x天差地别,你踩雷了吗?

编码之中所含有的内容在数目方面是比较多的, 本篇文章所冀图阐述的那个默认编码恰恰是编码内容范围界定下其中的某一种类别。基础的知识要点还将会关联及过往所讲述的utf-8编码, 对于那些尚不知悉的小伙伴而言, 能够查阅以往产出的文章来获得相关解答。情况或许是有部分小伙伴之…

2026/8/24 14:14:49 阅读更多 →

最新新闻

两步把 NCM 音乐转成 MP3:ncmdump 免费拖拽转换

两步把 NCM 音乐转成 MP3:ncmdump 免费拖拽转换

两步把 NCM 音乐转成 MP3:ncmdump 免费拖拽转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 歌拷到别的播放器,提示格式不支持;丢进剪辑软件,直接被拒。问题出在 .ncm 这个格式上—…

2026/8/24 15:01:30 阅读更多 →
鸣潮工具箱 WaveTools:一条命令装好,120帧、画质与抽卡保底一次管明白

鸣潮工具箱 WaveTools:一条命令装好,120帧、画质与抽卡保底一次管明白

鸣潮工具箱 WaveTools:一条命令装好,120帧、画质与抽卡保底一次管明白 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools WaveTools(鸣潮工具箱)是鸣潮 PC 端的…

2026/8/24 15:01:30 阅读更多 →
实测 bilibili-linux:Linux B站客户端的三条上手路径

实测 bilibili-linux:Linux B站客户端的三条上手路径

实测 bilibili-linux:Linux B站客户端的三条上手路径 【免费下载链接】bilibili-linux 基于哔哩哔哩官方客户端移植的Linux版本 支持漫游 项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-linux bilibili-linux 是 Linux 版 B 站客户端,由…

2026/8/24 15:01:30 阅读更多 →
6 款免费 AI 配音软件,影视解说 / 有声书 / 课件都能用

6 款免费 AI 配音软件,影视解说 / 有声书 / 课件都能用

2026 年,免费 AI 配音工具已经能做到以假乱真——影视解说、有声书、教学课件这三大场景,用对工具完全不需要花一分钱。下面这 6 款工具,从完全零成本到每日赠额,覆盖了不同创作需求,按需选择即可。一、叮叮配音&#…

2026/8/24 15:01:30 阅读更多 →
drawio-desktop完整指南:免费跨平台流程图工具,Visio文件直接打开导出

drawio-desktop完整指南:免费跨平台流程图工具,Visio文件直接打开导出

drawio-desktop完整指南:免费跨平台流程图工具,Visio文件直接打开导出 【免费下载链接】drawio-desktop Official electron build of draw.io 项目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop 上个月同事从Windows换到Mac&…

2026/8/24 15:01:30 阅读更多 →
AI大模型崛起:小白也能抓住的财富风口,速收藏!

AI大模型崛起:小白也能抓住的财富风口,速收藏!

AI大模型市场正高速增长,预计2026年突破680亿元,2030年达3250亿元。超500万AI企业入局,行业落地加速。AI能力成为企业和职场的核心竞争力,高薪岗位需求激增,年薪最高可达77万。全民普及阶段,掌握AI技能是抓…

2026/8/24 15:00:29 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

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

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

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

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

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

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

2026/8/23 12:10:44 阅读更多 →
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/24 11:20:22 阅读更多 →