【leetcode】453. Minimum Moves to Equal Array Elements

problem

453. Minimum Moves to Equal Array Elements

 相当于把不等于最小值的数字都减到最小值所需要次数的累加和。

solution1:

class Solution {
public:
    int minMoves(vector<int>& nums) {
        int res = 0;//err-initialization.
        int mn = INT_MAX;//err.
        for(auto num:nums) mn = min(num, mn);
        for(auto num:nums) res += num-mn;
        return res;
    }
};

记得初始化,否则默认初始值是最小值。

solution2:

换一种思路,就是数组之和减去最小值乘以数组长度之积。

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

 

 

参考

1. Leetcode_453. Minimum Moves to Equal Array Elements;

2. GrandYang;

posted on 2019-03-14 10:48  鹅要长大  阅读(142)  评论(0编辑  收藏  举报

导航