【LeetCode: 462. 最小操作次数使数组元素相等 II + 贪心】

LeetCode 462. 最小操作次数使数组元素相等 II【贪心,排序或快速选择】中等 Given a non-empty integer array, find the minimum number of moves required to make all array elements equal, where a move is incrementing a selected element by 1 or decrementing a selected element by 1. You may assume the array’s length is at most 10,000. 阅读详情

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,优快云-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述
在这里插入图片描述

🚩 题目链接

⛲ 题目描述

给你一个长度为 n 的整数数组 nums ,返回使所有数组元素相等需要的最小操作数。

在一次操作中,你可以使数组中的一个元素加 1 或者减 1 。

示例 1:

输入:nums = [1,2,3]
输出:2
解释:
只需要两次操作(每次操作指南使一个元素加 1 或减 1):
[1,2,3] => [2,2,3] => [2,2,2]
示例 2:

输入:nums = [1,10,2,9]
输出:16

提示:

n == nums.length
1 <= nums.length <= 105
-109 <= nums[i] <= 109

🌟 求解思路&实现代码&运行结果


⚡ 贪心(中位数)

🥦 求解思路
  1. 该题我们需要使用贪心的思路进行求解,先对给定的数组进行排序,然后,找到我们的中位数,因为,题目让我们求解的是【使所有数组元素相等需要的最小操作数】,所以,我们让所有的数值都向中位数靠齐,最后得到的结果就是最小的操作次数。
  2. 有了基本的思路,接下来我们就来通过代码来实现一下。
🥦 实现代码
class Solution {
    public int minMoves2(int[] nums) {
        Arrays.sort(nums);
        int n = nums.length;
        int ans = 0;
        int mid = nums[n / 2];
        for (int i = 0; i < n; i++) {
            ans += Math.abs(mid - nums[i]);
        }
        return ans;
    }
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

全网最详细Seurat v5 流程复现(拿来即用) 本文是基于seurat v5版本的教程复现,主要依据来源于官网seurat v5建议大家有时间的话可以去官网进行详细阅读学习!本节内容在之前seurat v4的教程都很多都有提到,文章所用到的数据及代码已经给各位放在这里了,有需要自取!请点击这里哦提取码:bui1。 阅读详情

相关推荐

从.har文件到Postman集合:一键转换的完整教程(附避坑指南)

本文详细介绍了如何将.har文件高效转换为Postman集合的完整教程,涵盖基础操作到高级技巧,包括认证信息处理、环境变量提取等痛点问题的解决方案。通过抓包工具记录的.har文件,开发者可以快速生成Postman集合,提升API调试与测试效率,特别适合前后端分离开发模式下的团队协作。

weixin_26795617的博客 384

LeetCode每日一题——462. 最少移动次数使数组元素相等 II

文章目录题目示例思路题解 题目 给你一个长度为 n 的整数数组 nums ,返回使所有数组元素相等需要的最少移动数。 在一步操作中,你可以使数组中的一个元素加 1 或者减 1 。 示例 示例 1: 输入:nums = [1,2,3] 输出:2 解释: 只需要两步操作(每步操作指南使一个元素加 1 或减 1): [1,2,3] => > [2,2,3] => [2,2,2] 示例 2: 输入:nums = [1,10,2,9] 输出:16 思路 先将数组排序,然后再取排序后的中

hyk的博客 412

遥感生态指数(RSEI)——四个指数的计算

遥感生态指数是在4个生态指数的基础上通过主成分变换得出的一个评价生态环境质量的指标。因此,第二部分就是要分别计算出这4个指数的值。 ①首先,是绿度指数的计算,一般用归一化植被指数(NDVI) NDVI=(NIR-Red)/(NIR+Red) 在Bandmath工具中输入NDVI计算公式 (float(b4-b3))/(b4+b3) 其中,b3、b4分别是红波段和近红外波段 ②其次,是湿度计算。 WET = c1B1 + c2B2 + c3B3...

qq_41978498的博客 9万+

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

给你一个长度为n的整数数组nums,返回使所有数组元素相等需要的最小操作数。在一次操作中,你可以使数组中的一个元素加1或者减1。测试用例经过设计以使答案在整数范围内。2只需要两次操作(每次操作指南使一个元素加 1 或减 1):1316。

m0_56090828的博客 610

OpenDataLab 大模型训练数据集下载记录

大模型 训练数据集

u013558123的博客 3347

YOLOv8改进 | 融合篇,YOLOv8改进主干网络为MobileNetV4+CBAM注意机制+Powerful-IoU损失函数(2024 最新IOU),全网首发,实现极限涨点

本文将在 YOLOv8 主干中引入 MobileNetV4 轻量化骨干,同时,在检测头引入 CBAM机制注意力机制,并采用 Powerful-IoU 损失函数作为模型的损失函数,其中,MobileNetV4 通过引入通用反向瓶颈(UIB)搜索块和 Mobie MQA 注意力模块创新设计,实现了模型的轻量级化;同时,MobileNetV4 采用了优化的 NAS 策略,通过粗粒度和细粒度搜索相结合的方法,显著提高了搜索效率并改善了模型质量。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 3785

leetcode-462.最少移动次数使数组元素相等

给你一个长度为n的整数数组nums,返回使所有数组元素相等需要的最少移动数。在一步操作中,你可以使数组中的一个元素加1或者减1。

Gundam的博客 521

泛微OA集成阿里云短信(E9保姆教程)

泛微OA集成阿里云短信(E9保姆教程)

技术分享 515

Leetcode-462. 最少移动次数使数组元素相等 II

Leetcode-462. 最少移动次数使数组元素相等 II

道纪书生的博客 578

Spring AI Alibaba实战训练营-16 NL2SQL (自然语言转 SQL)应用开发指南

本文介绍了一个基于AI的智能BI应用开发项目,主要实现自然语言转SQL(NL2SQL)功能,包含对话模块、MCP模块、向量数据管理模块。项目采用Spring AI Alibaba框架,集成通义千问大模型,支持内存向量库和AnalyticDB向量数据库两种存储方案。重点展示了chat模块的三个控制器实现:AnalyticNl2SqlController用于生产环境,SimpleChatController适用于开发测试,Nl2sqlForGraphController支持基于图的复杂对话流程。系统通过将业务知

program哲学 1587

C语言读取CSV文件的方法1

逗号分隔值文件格式(CSV),以纯文本形式存储表格数据,它是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。本文介绍利用C语言标准库中的一个字符串处理函数 strtok()来对CSV文件内容进行读取的基本方法

白马负金羁 1万+

小Q的奇偶操作数组 | 贪心

简单的贪心问题,只要每次操作最小的一位进行乘法就可以 了。小Q想知道,经过 k 次操作后,数组的元素之和最小可以是多少。

2301_78848414的博客 308

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

LeetCode 462 - 最小操作次数使数组元素相等 II

这道题看起来像个“数学题”,但其实更准确地说,它是一个非常典型的工程决策问题: 当你可以自由地调整每个元素,目标是让整体成本最低时,应该把大家“拉”到哪里? 很多人第一反应是“取平均数”,但这道题偏偏不是。 真正的答案,其实和一个我们经常忽略、但非常重要的概念有关:中位数。

记录从移动端、鸿蒙到物联网与AI的完整实战与思考。专注于分享可复用的工程方案与产品思维,尤其深入鸿蒙生态与全栈开发。以十年工程与管理沉淀,为你提供清晰的技术纵深路径。坚信技术的价值在于“贯通”与“落地”。 1024

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LeetCode 453. 最小操作次数使数组元素相等 & 462. 最少移动次数使数组元素相等 II (排序 | 数学)

思路 453. 最小操作次数使数组元素相等 根据题意,每次操作将会使 n - 1 个元素增加 1 。由于你执行了 k 次,所以一共会使 sum 增加 k * (n - 1) 。即操作结束后数组的和为 sum + k * (n - 1) 。 贪心部分:在整个流程的每次操作中,最小的那个值都会增加 1 。(贪心的证明在下个板块,建议最后看) 由贪心可知,经过k 步后, min 变为了 min + k ,也意味着此时数组的每一项都变为了 min + k ,所以操作结束后数组的和为 n * (min + k)...

Amxrjgcs的博客 349

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【LeetCode】462.最小操作次数使数组元素相等 II

day170 ,数学证明:中位数

weixin_43894455的博客 263

力扣 462. 最少移动次数使数组元素相等 II

题目 给你一个长度为 n 的整数数组 nums ,返回使所有数组元素相等需要的最少移动数。 在一步操作中,你可以使数组中的一个元素加 1 或者减 1 。 示例 输入:nums = [1,2,3] 输出:2 解释: 只需要两步操作(每步操作指南使一个元素加 1 或减 1): [1,2,3] => [2,2,3] => [2,2,2] 输入:nums = [1,10,2,9] 输出:16 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/mini

(ง •_•)ง没有困难的工作,只有勇敢的狗狗 239

LeetCode 462. 最少移动次数使数组元素相等 II--前缀和

最少移动次数使数组元素相等 II 给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素加1或减1。 您可以假设数组的长度最多为10000。 例如: 输入: [1,2,3] 输出: 2 说明: 只有两个动作是必要的(记得每一步仅可使其中一个元素加1或减1): [1,2,3] => [2,2,3] => [2,2,2] 题解 排序后计算前缀和,贪心策略,我们从左到右遍历,假设把所有元素变成nums[i],那么左边的元素肯定都是加,右边的元素都是减,.

weixin_43918046的博客 171

0数学/贪心 LeetCode462. 最少移动次数使数组元素相等 II

贪心

31楼下小黑的博客 306

Kimi LeetCode 3505. 使 K 个子数组内元素相等的最少操作数 Java实现

/ 2. 选以 i-1 结尾的子数组: dp[i][j] = dp[i-x][j-1] + cost[i-1]// dp[i][j] = 考虑前 i 个元素(0..i-1),选出 j 个不重叠的长度为x的子数组的最小操作数。- 选以 `i-1` 结尾的子数组:`dp[i][j] = dp[i-x][j-1] + cost[i-1]`// 延迟删除的哈希表。// 1. 不选以 i-1 结尾的子数组: dp[i][j] = dp[i-1][j]dh.erase(nums[i - x]);

m0_37843156的博客 177

Kimi LeetCode 3505. 使 K 个子数组内元素相等的最少操作数 Python3实现

2. 滑动窗口中位数:用对顶堆(两个堆 + 延迟删除)维护长度为 `x` 的滑动窗口,快速求出每个窗口变为相等的最小操作次数 `cost[i]`。证明可参考 LeetCode 462。3. 划分型 DP:`dp[i][j]` 表示前 `i` 个元素中选出 `j` 个不重叠的长度为 `x` 的子数组的最小操作数。- 选以 `i-1` 结尾的子数组:`dp[i][j] = dp[i-x][j-1] + cost[i-1]`- 不选:`dp[i][j] = dp[i-1][j]`完整 Python3 代码。

m0_37843156的博客 159

Kimi LeetCode 3505. 使 K 个子数组内元素相等的最少操作数 Rust实现

2. 滑动窗口中位数:用对顶堆(两个 `BTreeMap` + 延迟删除)维护长度为 `x` 的滑动窗口,快速求出每个窗口变为相等的最小操作次数 `cost[i]`。3. 划分型 DP:`dp[i][j]` 表示前 `i` 个元素中选出 `j` 个不重叠的长度为 `x` 的子数组的最小操作数。空间 O(n + x + nk) — cost 数组 O(n),对顶堆 O(x),DP 数组 O(nk)由于 `k ≤ 15`,`nk` 最大约为 `1.5 × 10⁶`,空间可接受。完整 Rust 代码。

m0_37843156的博客 189

【Leetcode】随笔

✨ 本次分享的3道题均为LeetCode中“思维转折点多、工程实现细节丰富”的困难题,覆盖“数学证明+快速选择”“区间DP去重”“贪心+单调栈”三大核心创新方向。📖这里不仅有丰富的知识和趣味横生的内容等您来探索,更是一个自由交流的平台,期待您留下独特的思考与见解。,根据 Jensen 不等式,凸函数的和在“中位数”处取得最小值。找到中位数后,遍历数组累加所有元素与中位数的绝对值之和,即为最小移动次数。时,第2、3小元素之间的数)均可作为目标值,总移动次数相同。为偶数时,任意两个中位数之间的整数(如。

种一棵树,最好的时间是十年前,其次是现在。 744

【题解】LeetCode:通过累加和轮转操作得到字典序最小字符串

本文探讨了环状字母变换问题的解法。针对将字符串所有字母统一所需的最小操作次数问题,关键在于:1)理解字母表的环形结构(a与z相邻);2)计算字符间两条路径的最小距离(min(|c1-c2|,26-|c1-c2|))。基础解法是枚举26个目标字母,计算每个字符到目标的总操作次数取最小值。文章还延伸讨论了相关题目(如力扣1974特殊打字机问题)和优化技巧,并总结了环状问题的通用解法框架:正确计算环状距离+枚举所有可能目标+适当优化。

2401_82380215的博客 867
上一篇: 【LeetCode: 2670. 找出不同元素数目差数组 + 哈希表 + 前后缀处理】
下一篇: 【LeetCode: 82. 删除排序链表中的重复元素 II + 链表】
硕风和炜
硕风和炜 优质创作者: Java技术领域 优质创作者: Java技术领域
博客等级 码龄7年 2万+粉丝 1024原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硕风和炜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值