Skip to main content

Minimum Moves to Equal Array Elements

LeetCode 453 | Difficulty: Medium​

Medium

Problem Description​

Given an integer array nums of size n, return the minimum number of moves required to make all array elements equal.

In one move, you can increment n - 1 elements of the array by 1.

Example 1:

Input: nums = [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]

Example 2:

Input: nums = [1,1,1]
Output: 0

Constraints:

- `n == nums.length`

- `1 <= nums.length <= 10^5`

- `-10^9 <= nums[i] <= 10^9`

- The answer is guaranteed to fit in a **32-bit** integer.

Topics: Array, Math


Approach​

Mathematical​

Look for mathematical patterns or formulas. Consider: modular arithmetic, GCD/LCM, prime factorization, combinatorics, or geometric properties.

When to use

Problems with clear mathematical structure, counting, number properties.


Solutions​

Solution 1: C# (Best: 220 ms)​

MetricValue
Runtime220 ms
Memory41.4 MB
Date2022-02-09
Solution
public class Solution {
public int MinMoves(int[] nums) {
return nums.Sum()-(nums.Length*nums.Min());
}
}

Complexity Analysis​

ApproachTimeSpace
Solution$O(n)$$O(1) to O(n)$

Interview Tips​

Key Points
  • Discuss the brute force approach first, then optimize. Explain your thought process.