数字今天科技 网站,做pc端大型网站+前端用,广东省高校质量工程建设网站,省规划建设发展局网站首页#x1f680; 算法题 #x1f680; #x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 #x1f340; #x1f332; 越难的东西,越要努力坚持#xff0c;因为它具有很高的价值#xff0c;算法就是这样✨ #x1f332; 作者简介#xff1a;硕风和炜#xff0c;… 算法题 算法刷题专栏 | 面试必备算法 | 面试高频算法 越难的东西,越要努力坚持因为它具有很高的价值算法就是这样✨ 作者简介硕风和炜CSDN-Java领域优质创作者保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享 恭喜你发现一枚宝藏博主,赶快收入囊中吧 人生如棋我愿为卒行动虽慢可谁曾见我后退一步 算法题 目录 题目链接⛲ 题目描述 求解思路实现代码运行结果⚡ 贪心(中位数) 求解思路 实现代码 运行结果 共勉 题目链接
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
提示
n nums.length 1 nums.length 105 -109 nums[i] 109 求解思路实现代码运行结果 ⚡ 贪心(中位数) 求解思路
该题我们需要使用贪心的思路进行求解先对给定的数组进行排序然后找到我们的中位数因为题目让我们求解的是【使所有数组元素相等需要的最小操作数】所以我们让所有的数值都向中位数靠齐最后得到的结果就是最小的操作次数。有了基本的思路接下来我们就来通过代码来实现一下。 实现代码
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;}
}运行结果 共勉
最后我想和大家分享一句一直激励我的座右铭希望可以与大家共勉