Kimi LeetCode LCP 24. 数字游戏 JavaScript实现

发布时间:2026/8/24 14:14:12

Kimi    LeetCode LCP 24. 数字游戏 JavaScript实现
LCP 24. 数字游戏 — JavaScript 实现核心思路问题转化将 nums[0..i] 变为公差为 1 的等差数列 x, x1, ..., xi最小操作次数为\sum{j0}^{i} |nums[j] - (xj)| \sum{j0}^{i} |(nums[j]-j) - x|令 b[j] nums[j] - j问题转化为求 x 使得 Σ|b[j] - x| 最小。数学结论使绝对值之和最小的 x 是数组 b 的中位数。算法用对顶堆动态维护中位数并同时维护两堆元素之和以 O(1) 计算当前操作次数。---完整代码可直接提交javascript/*** LCP 24. 数字游戏* 对顶堆双堆动态维护中位数* param {number[]} nums* return {number[]}*/var numsGame function(nums) {const MOD 1_000_000_007;const n nums.length;const res new Array(n);// 大根堆存储较小的一半包含中位数堆顶即中位数const left new Heap((a, b) b - a);// 小根堆存储较大的一半const right new Heap((a, b) a - b);let sumL 0; // left 堆元素之和let sumR 0; // right 堆元素之和for (let i 0; i n; i) {const val nums[i] - i; // 关键转化// 1. 插入元素if (left.size() 0 || val left.top()) {left.push(val);sumL val;// 平衡left 最多比 right 多 1 个if (left.size() right.size() 1) {const v left.pop();right.push(v);sumL - v;sumR v;}} else {right.push(val);sumR val;// 平衡right 不能比 left 多if (right.size() left.size()) {const v right.pop();left.push(v);sumR - v;sumL v;}}// 2. 中位数const mid left.top();const lc left.size();const rc right.size();// 3. 计算操作次数// left 部分mid 比 left 中所有元素大或等贡献 lc * mid - sumL// right 部分right 中所有元素比 mid 大贡献 sumR - rc * midconst partL BigInt(lc) * BigInt(mid) - BigInt(sumL);const partR BigInt(sumR) - BigInt(rc) * BigInt(mid);let ans Number((partL partR) % BigInt(MOD));if (ans 0) ans MOD;res[i] ans;}return res;};/* 自定义堆优先队列 */class Heap {constructor(compare) {this.data [];this.compare compare; // 返回负数表示 a 应在 b 前面}size() {return this.data.length;}top() {return this.data[0];}push(val) {this.data.push(val);this._up(this.data.length - 1);}pop() {if (this.data.length 1) return this.data.pop();const top this.data[0];this.data[0] this.data.pop();this._down(0);return top;}_up(i) {while (i 0) {const p (i - 1) 1;if (this.compare(this.data[i], this.data[p]) 0) break;[this.data[i], this.data[p]] [this.data[p], this.data[i]];i p;}}_down(i) {const n this.data.length;while (true) {let l i * 2 1, r i * 2 2, minIdx i;if (l n this.compare(this.data[l], this.data[minIdx]) 0) minIdx l;if (r n this.compare(this.data[r], this.data[minIdx]) 0) minIdx r;if (minIdx i) break;[this.data[i], this.data[minIdx]] [this.data[minIdx], this.data[i]];i minIdx;}}}---关键点说明步骤 说明nums[i] - i 将公差为 1 的等差数列条件转化为所有元素相等中位数最优 Σ\|b[j] - x\| 在 x 取中位数时最小对顶堆 left大根堆存较小一半right小根堆存较大一半始终保持 left.size() right.size() 或 left.size() right.size() 1O(1) 求答案 利用两堆的和 sumL、sumR直接公式计算总距离无需遍历复杂度- 时间O(n log n)每个元素最多两次堆操作- 空间O(n)两堆共存储 n 个元素

相关新闻

跑得准:业务结果才是唯一的验收标准

跑得准:业务结果才是唯一的验收标准

2026/8/24 14:14:12

从「能跑」到「跑得准」,变化的不是代码质量,是站位:你从「站在技术这边看」切换成「站在业务那边看」。 一、技术人为什么容易自嗨 技术人容易掉进一个坑:把技术和业务拆成两张皮。 你关注 QPS、延迟、P99、代码覆盖率、架构评分…

过流保护电路原理解读与参数计算(附LTspice仿真源文件)

过流保护电路原理解读与参数计算(附LTspice仿真源文件)

2026/8/24 14:04:11

这是一款由MCU电平使能、具有精确限流(≈200mA)保护的线性功率输出开关电路,当负载过流或短路时,将输出电流钳制在设定值,避免电路损坏。 过流保护电路原理图 电路元件构成清单 位号 类型 型号/数值 功能描述 Q821(正文的Q1) PNP三极管 2N4126 主功率开关管,承担负载电流…

信奥梯队选拔的面试环节如何评估学员的潜力

信奥梯队选拔的面试环节如何评估学员的潜力

2026/8/24 14:04:11

信奥梯队面试环节评估学员潜力,核心是跳出纸面成绩,精准识别学员的逻辑天赋、学习韧性、长期成长空间,筛选出能适配信奥长期高强度训练的优质苗子。 一、核心潜力评估维度 1、‌逻辑思维天赋‌ 观察学员面对陌生问题时,能否快速…

Winstep Nexus(桌面美化软件)

Winstep Nexus(桌面美化软件)

2026/8/24 15:44:15

链接:https://pan.quark.cn/s/e829cd5c55e2Winstep Nexus是一款非常专业的Windows桌面dock软件。可以仿Mac苹果系统桌面,提供Widget、鼠标移过特效、皮肤、拖动、图标倒影、模糊背景系统托盘和任务栏支持等功能,允许用户将该程序停靠或浮动在…

油猴中文网

油猴中文网

2026/8/24 15:44:15

链接:https://pan.quark.cn/s/eddf99b5496c提供免费油猴脚本插件下载工具,让自己也能制作脚本,为小白提供相关知识信息,包括油猴插件工具开发等,让您感受全面的油猴信息

嵌入式-51单片机入门(三)-数码管驱动:从单管点亮、多位扫描到动态刷新与消隐原理

嵌入式-51单片机入门(三)-数码管驱动:从单管点亮、多位扫描到动态刷新与消隐原理

2026/8/24 15:44:15

前言 很多初学者接触数码管的第一印象是「给P0赋个十六进制数,数码管就亮了」,但真正深入下去会遇到一连串问题: 为什么多位数码管不能同时显示不同数字?只调用一次显示函数,为什么有时也能常亮?扫描速度…

FlyingMouse Format / 飞鼠格式

FlyingMouse Format / 飞鼠格式

2026/8/24 15:44:15

链接:https://pan.quark.cn/s/957d9def1b4a支持图片/文档/表格/PPT/PDF/音视频/WPS 格式互转 OCR 批量转换

学习C#开源报表组件Seal Report(19:Seal Report Designer界面布局-15)

学习C#开源报表组件Seal Report(19:Seal Report Designer界面布局-15)

2026/8/24 15:44:15

本文继续学习Seal Report Designer中Views节点下View子节点对象的剩余属性用途。1、Excel ConfigurationUse custom template text属性:设置是否使用自定义模板;Custom template for Excel属性:支持维护Razor脚本格式的视图模板,以…

superpowers 凭什么让 AI 编码助手“工程化“?

superpowers 凭什么让 AI 编码助手“工程化“?

2026/8/24 15:34:15

superpowers 凭什么让 AI 编码助手"工程化"? obra/superpowers,单周新增 30k stars,直接拿下双榜冠军,目前总 Star 突破 27.6 万。 但很多人误以为它"又是一个提示词模板"。错了。superpowers 不是"更好…

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

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

2026/8/23 0:02:09

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

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

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

2026/8/23 0:02:09

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

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

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

2026/8/23 0:02:09

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

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

2026/8/24 0:03:28

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定 【免费下载链接】OpenModScan Open ModScan is a Free Modbus Master (Client) Utility 项目地址: https://gitcode.com/gh_mirrors/op/OpenModScan OpenModScan 是一款开源免…

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

2026/8/24 0:03:28

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化 【免费下载链接】WechatHook Enjoy hooking wechat by Xposed....Accessibility...and so on... 项目地址: https://gitcode.com/gh_mirrors/we/WechatHook WechatHook 是一个基于 Xpos…

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

2026/8/24 0:03:28

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南 【免费下载链接】ThinkpadX390-Opencore-EFI macOS Catalina & Big Sur & Monterey on ThinkPad X390 (Hackintosh) 项目地址: https://gitcode.com/gh_mirrors/th/ThinkpadX390-Opencore-EFI …

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…