1. 程式人生 > >Leetcode 462.最少移動次數使數組元素相等

Leetcode 462.最少移動次數使數組元素相等

return pub color 找到 solution 給定 ava i++ public

最少移動次數使數組元素相等

給定一個非空整數數組,找到使所有數組元素相等所需的最小移動數,其中每次移動可將選定的一個元素加1或減1。 您可以假設數組的長度最多為10000。

例如:

輸入:

[1,2,3]

輸出:

2

說明:

只有兩個動作是必要的(記得每一步僅可使其中一個元素加1或減1):

[1,2,3] => [2,2,3] => [2,2,2]

排序之後,從兩邊往中間走,最大和最小之間的差距,是一定要填補上的,不管+1 還是 -1,所以最後都等於中位數。

 1 import java.util.Arrays;
 2 
 3 class Solution {
4 public int minMoves2(int[] nums) { 5 Arrays.sort(nums); 6 int i=0; 7 int j=nums.length-1; 8 int cnt=0; 9 while(i<j){ 10 cnt+=nums[j--]-nums[i++]; 11 } 12 return cnt; 13 } 14 }

 

Leetcode 462.最少移動次數使數組元素相等