leetcode 453. 最小移動次數使數組元素相等(Minimum Moves to Equal Array Elements)
阿新 • • 發佈:2019-03-25
str tco () 描述 元素 amp itl += int
目錄
- 題目描述:
- 示例:
- 解法:
題目描述:
給定一個長度為 n 的非空整數數組,找到讓數組所有元素相等的最小移動次數。每次移動可以使 n - 1 個元素增加 1。
示例:
輸入:
[1,2,3]
輸出:
3
解釋:
只需要3次移動(註意每次移動會增加兩個元素的值):
[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]
解法:
class Solution { public: int minMoves(vector<int>& nums) { // add one for n-1 numbers <===> subtract one for single number long long min_val = nums[0]; long long sum_val = 0; for(int val : nums){ sum_val += val; if(val < min_val){ min_val = val; } } int n = nums.size(); return sum_val - min_val*n; } };
leetcode 453. 最小移動次數使數組元素相等(Minimum Moves to Equal Array Elements)