前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关关的刷题日记82 – Leetcode 453. Minimum Moves to Equal Array Elements

关关的刷题日记82 – Leetcode 453. Minimum Moves to Equal Array Elements

作者头像
WZEARW
发布2018-04-12 14:45:15
6970
发布2018-04-12 14:45:15
举报
文章被收录于专栏:专知

关关的刷题日记82 – Leetcode 453. 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的非空数组,每次使其中的n-1个数加1,问最少操作多少次可以使数组中的所有数字相等。

思路

思路:我们可以采用逆向思维,因为题目只要求最后使数组中所有数字相等,并没有说等于多少。所以每次使其中n-1个数加1,就相当于每次使数组中的一个数减1:先找到数组中最小的数字,然后遍历数组所有元素,每个数与最小数字差值之和即为所求。

代码语言:javascript
复制
class Solution {
public:
    int minMoves(vector<int>& nums) {
        int minimum=INT_MAX, re=0;
        for(int x:nums)
            minimum=min(x,minimum);
        for(int x:nums)
            re+=x-minimum;
        return re;
    }
};

人生易老,唯有陪伴最长情,加油!

以上就是关关关于这道题的总结经验,希望大家能够理解,有什么问题可以在我们的专知公众号平台上交流或者加我们的QQ专知-人工智能交流群 426491390,也可以加入专知——Leetcode刷题交流群(请先加微信小助手weixinhao: Rancho_Fang)。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-12-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 专知 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目
  • 思路
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档