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]
    Runtime: 48 ms, faster than 63.16% of C++ online submissions for Minimum Moves to Equal Array Elements.

    1. class Solution {
    2. public:
    3. int minMoves(vector<int>& nums) {
    4. int n = nums.size();
    5. if (n <= 1) {
    6. return 0;
    7. }
    8. int mn = nums[0];
    9. long sum = nums[0];
    10. for (int i = 1; i < n; i++) {
    11. mn = min(mn, nums[i]);
    12. sum += nums[i];
    13. }
    14. return sum - mn * n;
    15. }
    16. };