Leetcode 462.最少移动次数使数组元素相等
Posted kexinxin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 462.最少移动次数使数组元素相等相关的知识,希望对你有一定的参考价值。
最少移动次数使数组元素相等
给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素加1或减1。 您可以假设数组的长度最多为10000。
例如:
输入:
[1,2,3]
输出:
2
说明:
只有两个动作是必要的(记得每一步仅可使其中一个元素加1或减1):
[1,2,3] => [2,2,3] => [2,2,2]
排序之后,从两边往中间走,最大和最小之间的差距,是一定要填补上的,不管+1 还是 -1,所以最后都等于中位数。
1 import java.util.Arrays; 2 3 class Solution { 4 public int minMoves2(int[] nums) { 5 Arrays.sort(nums); 6 int i=0; 7 int j=nums.length-1; 8 int cnt=0; 9 while(i<j){ 10 cnt+=nums[j--]-nums[i++]; 11 } 12 return cnt; 13 } 14 }
以上是关于Leetcode 462.最少移动次数使数组元素相等的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode-462 Minimum Moves to Equal Array Elements II(最少移动次数使数组元素相等 II)
LeetCode 668. 乘法表中第k小的数 / 462. 最少移动次数使数组元素相等 II / 436. 寻找右区间
462 Minimum Moves to Equal Array Elements II 最少移动次数使数组元素相等 II
[LeetCode] Minimum Moves to Equal Array Elements 最少移动次数使数组元素相等