zoukankan      html  css  js  c++  java
  • 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-1个元素加1,观察例子可以看出每次是的不是最大的n-1个数字加1,那么转换过来就是每次使最大的那个数字减1,所以为了是的数组一致,所有的数字都必然会减到最小的那个数字。

     1 class Solution {
     2 public:
     3     int minMoves(vector<int>& nums) {
     4         if(nums.size()==0)
     5             return 0;
     6         int min_num=nums[0];
     7         for(int n:nums)
     8             min_num=min(min_num,n);
     9         int res=0;
    10         for(int n:nums)
    11             res+=n-min_num;
    12         return res;
    13     }
    14 };
  • 相关阅读:
    Bresenham画线算法
    DDA算法
    GL_LINES & GL_LINE_STRIP & GL_LINE_LOOP
    贝塞尔曲线
    弱引用
    Lambert模型
    ShadowVolume
    Phong Shading
    求反射向量
    Vertex Modifier of Surface Shader
  • 原文地址:https://www.cnblogs.com/SarahLiu/p/6203057.html
Copyright © 2011-2022 走看看