LeetCode.462 Equal Array Elements II

来源:互联网 发布:go语言编程圣经 编辑:程序博客网 时间:2024/06/07 13:17

题目:

Given a non-empty integer array, find the minimum number of moves required to make all array elements equal, where a move is incrementing a selected element by 1 or decrementing a selected element by 1.

You may assume the array's length is at most 10,000.

Example:

Input:[1,2,3]Output:2Explanation:Only two moves are needed (remember each move increments or decrements one element):[1,2,3]  =>  [2,2,3]  =>  [2,2,2]

分析:

class Solution {    public int minMoves2(int[] nums) {        //给定数组,每次改变数组中的一个元素(增加1或者减少1),返回最少多少次可以使整个数组的元素均相同。        //思路:先求出元素的中位数,两边数相差的便是需要移动的步数        Arrays.sort(nums);        int i=0;        int j=nums.length-1;        int res=0;        while(i<j){            res+=nums[j--]-nums[i++];        }        return res;    }}



阅读全文
0 0
原创粉丝点击