首页 > 学院 > 开发设计 > 正文

LeetCode-453. Minimum Moves to Equal Array Elements

2019-11-08 01:12:33
字体:
来源:转载
供稿:网友

问题: https://leetcode.com/PRoblems/minimum-moves-to-equal-array-elements/?tab=Description 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. 给定一个长度为n的数组,每次将n-1个元素加1,寻找最小的移动次数,使得数组中数字全部相同。 分析:将n-1个元素加1,直至所有元素数相同。不如看成将最大的数-1,直至所有的数都和原来数组中最小的数相同。因为需要其他的元素跟最小的数相同,而且每次只是一个最大的值减1,就相当于总的次数等于最小元素和其他所有元素的差值之和。 C++代码:

class Solution {public: int minMoves(vector<int>& nums) { sort(nums.begin(),nums.end()); int l=nums.size(); int sum=0; for(int i=0;i<l;i++){ sum+=nums[i]-nums[0]; } return sum; }};
上一篇:Struts2---请求参数校验

下一篇:文章标题

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表