462. Minimum Moves to Equal Array Elements II

来源:互联网 发布:景观大数据视频教程 编辑:程序博客网 时间:2024/05/21 17:40

原题网址:https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/

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]
思路:参考https://discuss.leetcode.com/topic/68736/java-just-like-meeting-point-problem

方法:汇聚点一定在最小与最大之间,最小与最大点之差是一定要的,无论汇聚点在哪里。

public class Solution {    public int minMoves2(int[] nums) {        Arrays.sort(nums);        int moves = 0;        for(int i = 0, j = nums.length - 1; i < j; i++, j--) {            moves += nums[j] - nums[i];        }        return moves;    }}


0 0
原创粉丝点击