中等题:贪心+最少移动次数
对于一个数组来说:[1,2,3,4,5,6]
移动到一个数值,实际上对于1,6
(最大、最小值)而言,它们无论移动到[1-6]
种任何一个数字,都需要5次;
以此类推:
1,6===>5次
2,5===>3次
3,4===>1次
所以它们最终的解决方案就是移动到中值,不会有别的解答。
寻找中值可以使用堆
heapq.heapify()
和heapq.nlargest()
达到更快的速度。
对于一个数组来说:[1,2,3,4,5,6]
移动到一个数值,实际上对于1,6
(最大、最小值)而言,它们无论移动到[1-6]
种任何一个数字,都需要5次;
以此类推:
1,6===>5次
2,5===>3次
3,4===>1次
所以它们最终的解决方案就是移动到中值,不会有别的解答。
寻找中值可以使用堆
heapq.heapify()
和heapq.nlargest()
达到更快的速度。