462. Minimum Moves to Equal Array Elements II
2024-09-05 16:25:02
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.
Example:
Input:
[1,2,3] Output:
2 Explanation:
Only two moves are needed (remember each move increments or decrements one element): [1,2,3] => [2,2,3] => [2,2,2]
给定一个非空的整型数组,找到使所有数组元素相等所需的最小移动次数,移动是将所选元素递增1或将选定元素递减1。您可以假设阵列的长度最多为10,000。
例:
输入:
[1,2,3] 输出:
2 说明:
只需要两个移动(记住每个移动增加或减少一个元素):
[1,2,3] => [2,2,3] => [2 ,2,2]
(1)思想1:首先对数组进行排序sort(),然后找到其中间值mid = nums[nums.size()/2],然后再对“其余值减去中间值”进行一个求和,便是最终的结果。
C++:
class Solution {
public:
int minMoves2(vector<int>& nums) {
sort(nums.begin(),nums.end());
int mid=nums[nums.size()/];
int result=;
for(int i=;i<nums.size();i++)
result=result+abs(nums[i]-mid);
return result;
}
};
python:
class Solution:
def minMoves2(self, nums):
nums.sort()
result=0
mid=nums[int(len(nums)/2)]
for x in nums:
result=result+abs(x-mid)
return result
最新文章
- PhpStorm 快捷键大全 PhpStorm 常用快捷键和配置
- [51单片机] 以PWM控制直流电机为例建一个简单的51工程框架
- Leetcode: Delete Node in a BST
- C#入门篇6-10:字符串操作 DateTime操作
- 【Hibernate 7】浅谈Hibernate的缓存机制
- SRM 588 D2 L2:GUMIAndSongsDiv2,冷静思考,好的算法简洁明了
- Win7 64 bit 激活工具
- Thinkphp与CI的区别
- java操作Jacoco合并dump文件
- 未能加载文件或程序集“BLL”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集。
- [翻译]LVM中逻辑卷的最大大小限制
- 使用Windows任务计划程序运行Windows PowerShell脚本
- day9文件操作---从即日起时景丽阳老师给我们讲课
- 牛客练习赛37-筱玛的字符串-DP递推
- pt-query-digest详解慢查询日志(转)
- akka cluster 初体验
- 第二阶段——个人工作总结DAY09
- springboot日志框架
- PAT 1078 字符串压缩与解压(20)(代码+思路)
- 6/9 sprint2 看板和燃尽图的更新