leetcode 453. Minimum Moves to Equal Array Elements

来源:互联网 发布:我爱摇滚乐 知乎 编辑:程序博客网 时间:2024/06/05 23:07

题目:

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:3Explanation:Only three moves are needed (remember each move increments two elements):[1,2,3]  =>  [2,3,3]  =>  [3,4,3]  =>  [4,4,4]

思路:

找到最小的一个,首先得满足最小的要和最大的一样,但是昨晚后最大的值会改变,继续加,最大的值和最小的值的差值不变,也就是求每个数与最小值之间的差的和。

class Solution {public:    int minMoves(vector<int>& nums) {        int min = INT_MAX;        int sum = 0;        for(auto val:nums){            if(val < min) min = val;            sum+=val;        }        return sum-nums.size()*min;    }};



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