给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素加1或减1。 您可以假设数组的长度最多为10000。
解析:本质上是寻找数组中位数(为什么??无解)再计算需要移动的步数。
首先排序,然后判断是偶数数组还是奇数。如果是偶数,取中位数的任意两个值都可以(数学可证明),如果是奇数,取中位数。然后循环该数组,计算每一个元素需要移动的位数。
给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素加1或减1。 您可以假设数组的长度最多为10000。
解析:本质上是寻找数组中位数(为什么??无解)再计算需要移动的步数。
首先排序,然后判断是偶数数组还是奇数。如果是偶数,取中位数的任意两个值都可以(数学可证明),如果是奇数,取中位数。然后循环该数组,计算每一个元素需要移动的位数。