首页/新闻资讯/正文详情

DeepSeek LeetCode 462. 最小操作次数使数组元素相等 II Java实现

发布时间:2026/11/15 13:50:20 来源:云帆数科 栏目:资讯中心
DeepSeek    LeetCode 462. 最小操作次数使数组元素相等 II Java实现
LeetCode 462. 最小操作次数使数组元素相等 II题目思路每次操作可让某个元素 1 或 -1要让所有元素相等且操作次数最少。数学结论设目标值为 x总代价为f(x) Σ |nums[i] - x|这是关于 x 的凸函数最小值在数组的中位数处取得偶数长度时取中间两个之一都行结果相同。直观理解把数组排序后把两端元素向中间靠拢。每次同时移动一对 (nums[left], nums[right])让它们相遇的最优位置就是中位数——移动 nums[right] - nums[left] 次。所有配对代价之和恰好等于每个元素到中位数的距离之和。解法一排序取中位数推荐importjava.util.Arrays;classSolution{publicintminMoves2(int[]nums){Arrays.sort(nums);intmediannums[nums.length/2];intmoves0;for(intnum:nums){movesMath.abs(num-median);}returnmoves;}}解法二快速选择找中位数O(n) 平均importjava.util.concurrent.ThreadLocalRandom;classSolution{publicintminMoves2(int[]nums){intnnums.length;intmedianquickSelect(nums,0,n-1,n/2);intmoves0;for(intnum:nums){movesMath.abs(num-median);}returnmoves;}// 返回第 k 小元素0-indexedprivateintquickSelect(int[]nums,intleft,intright,intk){while(leftright){intpivotIdxleftThreadLocalRandom.current().nextInt(right-left1);// 把 pivot 换到 left 位置swap(nums,left,pivotIdx);intpivotnums[left];intileft,jright;// 双指针分区避免大量重复元素退化while(ij){while(ijnums[j]pivot)j--;nums[i]nums[j];while(ijnums[i]pivot)i;nums[j]nums[i];}nums[i]pivot;if(ik)returnnums[i];elseif(ik)lefti1;elserighti-1;}returnnums[left];}privatevoidswap(int[]nums,inti,intj){inttmpnums[i];nums[i]nums[j];nums[j]tmp;}}复杂度分析解法 时间复杂度 空间复杂度 适用场景排序取中位数 O(n log n) O(log n)排序栈空间 代码简洁实际足够快快速选择 平均 O(n)最坏 O(n²) O(1) 数据量大且追求线性时间示例验证示例 1nums [1,2,3]· 排序后中位数 2· 代价|1-2| |2-2| |3-2| 1 0 1 2 ✓示例 2nums [1,10,2,9]· 排序后 [1,2,9,10]中位数取 2 或 9 均可· 取 21 0 7 8 16取 98 7 0 1 16 ✓两者结果相同易混淆题对比题目 操作方式 结论462本题 可 1 或 -1 选中位数代价为距离和453. 最小操作次数使数组元素相等 只能 1一次加 n-1 个元素 选最小值代价为 Σ(nums[i] - min)注意 453 题的等价转化每次给 n-1 个元素 1等价于每次给 1 个元素 -1因此目标是让所有元素降到最小值。而本题允许双向操作因此取中位数最优。

相关推荐

Redis 7 天学习笔记 · Day 2
Redis 7 天学习笔记 · Day 2

Redis 7 天学习笔记 Day 2主题:五种数据结构——每种只学“什么时候非它不可”环境:Ubuntu 虚拟机 Python 3 Redis一句话总结:数据结构选错,代码会变丑;选对,一行命令解决的事不用写十行。一、今日核心认… · 2026/11/3 8:31:04

千问    LeetCode 454. 四数相加 II Java实现
千问 LeetCode 454. 四数相加 II Java实现

这道题用分组 哈希表最稳&#xff1a;把四数之和拆成两组两数之和&#xff0c;避免 O(n⁴) 暴力。 Java 实现 class Solution { public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) { Map<Integer, Integer> sumMap new HashMap<>();… · 2026/11/3 0:29:13

Mysql第二天
Mysql第二天

多表查询多表查询概述内连接外连接案例&#xff08;可以用下面的信息练一下多表查询操作&#xff09;创建表添加信息&#xff08;第一张表你们可以手敲一下&#xff0c;其他两张表直接复制粘贴就行&#xff09;添加stars信息添加movies信息INSERT INTO movies(id, title, origi… · 2026/11/5 13:10:43

高压电工作业背景图片怎么找?考前押题和报名流程全知道
高压电工作业背景图片怎么找?考前押题和报名流程全知道

高压电工作业背景图片怎么找?考前押题和报名流程全知道 你是不是也和我一样,不知道去哪报名怕被中介坑?高压电工作业证关系到生命安全和职业发展,但网上信息太多太杂,一不小心就掉进坑里。别急,这篇文章带你一步步了解高压电工作业背景图片的来源、报考… · 2026/11/15 13:50:18

郑州办理建筑电工证值不值得考 工地太忙根本没时间复习考试
郑州办理建筑电工证值不值得考 工地太忙根本没时间复习考试

郑州办理建筑电工证值不值得考 工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,这句话说出了太多建筑电工从业者的现状。你可能已经在工地上干了几年,甚至十几年,但一听说要考建筑电工证,心里就开始打鼓:**郑州办理建筑电工证值不值得考?*… · 2026/11/15 13:50:18

低压电工证和弱电官方回应:工地太忙根本没时间复习考试?
低压电工证和弱电官方回应:工地太忙根本没时间复习考试?

低压电工证和弱电官方回应:工地太忙根本没时间复习考试? 工地太忙根本没时间复习考试,这几乎是所有一线电工的真实写照,尤其是低压电工和弱电相关岗位的从业者。很多人在实际工作中已经积累了丰富的经验,但一到考试,就因为复习时间不够而频频失利。… · 2026/11/15 13:50:18

高低压电工证哪用的多有效期多久
高低压电工证哪用的多有效期多久

低压电工证哪用的多真实经历告诉你考证门槛并不高 我以前也担心自己没上过大学,能不能报低压电工证,结果去了郑州一家培训中心,发现人家根本不看学历,只要能干活、有责任心就行。今天就和你聊聊高低压电工证到底哪用得多,报考条件有多宽松,还有真实经历… · 2026/11/15 13:50:18

高压电工证培训流程考前押题怎么准备?证书过期了不知道怎么复审延期
高压电工证培训流程考前押题怎么准备?证书过期了不知道怎么复审延期

高压电工证培训流程考前押题怎么准备?证书过期了不知道怎么复审延期 证书过期了不知道怎么复审延期?别急,高压电工证培训流程其实没那么复杂,关键是要提前规划,特别是考前押题的准备和复审流程,掌握好这些,再忙也能安排得过来。… · 2026/11/15 13:50:18

证书过期了不知道怎么复审延期?电工证考试考些什么值不值得考
证书过期了不知道怎么复审延期?电工证考试考些什么值不值得考

证书过期了不知道怎么复审延期?电工证考试考些什么值不值得考 证书过期了不知道怎么复审延期?这个问题困扰了太多像你一样的人,尤其是刚开始接触特种作业的朋友。很多考生在拿到电工证之后,对后续的 复审流程 和 有效期管理… · 2026/11/15 13:49:18

长春初级电工证怎么考?通过率揭秘全在这里
长春初级电工证怎么考?通过率揭秘全在这里

长春初级电工证怎么考?通过率揭秘全在这里 之前考的证在外省能不能转过来?这几乎是每个想从事电工工作的人都会问的问题。特别是那些在外地打拼多年、手里握着一张“外地电工证”的人,到了长春想继续干这一行,第一反应就是“我的证能用吗?”。今天我们就… · 2026/11/15 0:00:50

国内电工证报考条件与考试时间
国内电工证报考条件与考试时间

低压电工证怎么考?学历不高也能报名,官方报名入口全在这 你是不是经常听说“电工证是入行门槛”,但又担心自己学历不够、经验不足,根本报不了名?别急,今天就带你从零了解【国内电工证】的报考流程、考试内容,还有怎么在 官方报名入口… · 2026/11/15 0:00:50

电工作业时如何断电?电子证书到底能不能全国通用?
电工作业时如何断电?电子证书到底能不能全国通用?

电工作业时如何断电?电子证书到底能不能全国通用? 实操考试心里没底怕挂科,特别是电工作业时如何断电这一操作,不仅关系到你能不能拿到证书,更关系到以后能不能顺利上岗。很多人觉得这不过就是“断个电”,但其实这里面的门道可不少,稍有不慎就可能出错… · 2026/11/15 0:00:50

长春初级电工证怎么考?通过率揭秘全在这里
长春初级电工证怎么考?通过率揭秘全在这里

长春初级电工证怎么考?通过率揭秘全在这里 之前考的证在外省能不能转过来?这几乎是每个想从事电工工作的人都会问的问题。特别是那些在外地打拼多年、手里握着一张“外地电工证”的人,到了长春想继续干这一行,第一反应就是“我的证能用吗?”。今天我们就… · 2026/11/15 0:00:50

国内电工证报考条件与考试时间
国内电工证报考条件与考试时间

低压电工证怎么考?学历不高也能报名,官方报名入口全在这 你是不是经常听说“电工证是入行门槛”,但又担心自己学历不够、经验不足,根本报不了名?别急,今天就带你从零了解【国内电工证】的报考流程、考试内容,还有怎么在 官方报名入口… · 2026/11/15 0:00:50

电工作业时如何断电?电子证书到底能不能全国通用?
电工作业时如何断电?电子证书到底能不能全国通用?

电工作业时如何断电?电子证书到底能不能全国通用? 实操考试心里没底怕挂科,特别是电工作业时如何断电这一操作,不仅关系到你能不能拿到证书,更关系到以后能不能顺利上岗。很多人觉得这不过就是“断个电”,但其实这里面的门道可不少,稍有不慎就可能出错… · 2026/11/15 0:00:50

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

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

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

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

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

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

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码