【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;
完
各美其美,美美与共,不和他人作比较,不对他人有期待,不批判他人,不钻牛角尖。
心正意诚,做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/
心正意诚,做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/