Minimum Moves to Equal Array Elements

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

题意: 给定一个长度为n的非空整数数组,计算最少需要多少次移动可以使所有元素相等,一次移动是指将n - 1个元素加1

例子: 

输入:[1,2,3]

输出:3

说明:
只需要三次移动(记住每次移动要将两个元素加一):[1,2,3]  =>  [2,3,3]  =>  [3,4,3]  =>  [4,4,4]

标签: moves、minimum、elements、equal、加一、面试
猜你感兴趣的圈子:
LeetCode交流圈
  • 星空
    2017-08-18 17:58:37 1楼#1层
    class Solution(object):
        def minMoves(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            return sum(nums) - min(nums) * len(nums)
  • 星空
    2017-08-18 17:59:24 2楼#1层
    public class Solution {
        public int minMoves(int[] nums) {
            if (nums.length == 0) return 0;
            int min = nums[0];
            for (int n : nums) min = Math.min(min, n);
            int res = 0;
            for (int n : nums) res += n - min;
            return res;
        }
    }
  • 星空
    2017-08-18 18:00:48 3楼#1层
    def min_moves(nums)
      nums.inject(:+) - nums.size * nums.min
    end
  • 回复
隐藏