lettcode 462 最少移动次数使数组相等
- 题目链接
https://leetcode-cn.com/problems/minimum-moves-to-equal-array-elements-ii/submissions/ - 思路
关键是找到中位数,其它数到中位数的距离是最小的。 - 代码
class Solution(object):
def minMoves2(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
data = sorted(nums)
size = len(data)
if size % 2 == 0: # 判断列表长度为偶数
median = (data[size // 2] + data[size // 2 - 1]) / 2
if size % 2 == 1: # 判断列表长度为奇数
median = data[(size - 1) // 2]
result=0
for i in range(size):
result+=abs(median-data[i])
return result
- 总结
没有太理解,为什么各数到中位数是距离最小的。