您的位置:首页 > 其它

[leetcode]453. Minimum Moves to Equal Array Elements

2017-01-01 14:51 447 查看
题目链接:https://leetcode.com/problems/minimum-moves-to-equal-array-elements/

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

Example:
Input:
[1,2,3]

Output:
3

Explanation:
Only three moves are needed (remember each move increments two elements):

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


解题思路:每次将n-1个数加1,相当于把剩下的一个数减1。那么求出每个数与数组中最小数的差的累积和,即为结果。
class Solution{
public:
int minMoves(vector<int>& nums)
{
sort(nums.begin(),nums.end());
int len=nums.size(),res=0;
for(int i=1;i<len;i++)
res+=nums[i]-nums[0];
return res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: