leetcode之Minimum Moves to Equal Array Elements II解法
思路大致如下:
首先:最后数组的结果是nums数组中最中间的数字(nums数组排过序),这个是显而易见的
然后:前半个数组移动到中数需要step=中数X数组一半的长度-前半个数组元素的和,同理,后半个数组移动需要
step=后半个数组元素的和-中数X数组一半的长度,两个相加即可
最后:step=后半个数组的和-前半个数组的和
class Solution(object):
def minMoves2(self, nums):
return sum(sorted(nums)[len(nums)//2+len(nums)%2:])-sum(sorted(nums)[0:len(nums)//2])
所以整个代码一行搞定