题目链接
英文链接:https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/
中文链接:https://leetcode-cn.com/problems/minimum-moves-to-equal-array-elements-ii/
题目详述
给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素加1或减1。 您可以假设数组的长度最多为10000。
例如:
1 | 输入: |
题目详解
- 要得到最小移动数显然应该找中位数,这个中位数就是最终相等的数。
- 等价于在坐标轴上有一系列的点,要在坐标轴上找一个点,使所有点到这个点的距离之和最小。
- 如果数组个数为奇数,这个点定在最中间那个点,可以得到最小值。
- 如果数组个数为偶数,这个点定在处于中间两个点构成的区间中任意一点,都能得到最小值。
1 | public class LeetCode_00462 { |