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]

Source: leetcode | Difficulty: EASY
Tags: Data structures

Mathematics

Starter code: class Solution:
    def minMoves(self, nums: List[int]) -> int:
        

Solutions:
class Solution:

	def minMoves(self, nums):
		minx = min(nums)
		sums = sum(nums)
		return sums - len(nums) * minx


class Solution:

	def minMoves(self, nums):
		m = min(nums)
		res = 0
		for i in nums:
			res += i - m
		return res


class Solution:

	def minMoves(self, nums):
		return sum(nums) - len(nums) * min(nums)


class Solution:

	def minMoves(self, nums):
		if not nums:
			return 0
		lowest = nums[0]
		for num in nums:
			lowest = min(num, lowest)
		res = 0
		for num in nums:
			res += num - lowest
		return res


class Solution:

	def minMoves(self, nums):
		s = sum(nums)
		minimum = min(nums)
		n = len(nums)
		result = s - minimum * n
		return result


class Solution:

	def minMoves(self, nums):
		n = len(nums)
		mn = min(nums)
		return sum(nums) - n * mn


class Solution:

	def minMoves(self, nums):
		min_num = min(nums)
		result = 0
		for num in nums:
			result += num - min_num
		return result


class Solution:

	def minMoves(self, nums):
		count = 0
		smallest = min(nums)
		for num in nums:
			count += abs(num - smallest)
		return count


class Solution:

	def minMoves(self, nums):
		m = min(nums)
		return sum((i - m for i in nums))


class Solution:

	def minMoves(self, nums):
		nums_min = nums[0]
		res = 0
		for i in range(len(nums)):
			if nums[i] >= nums_min:
				res += nums[i] - nums_min
			else:
				res += i * (nums_min - nums[i])
				nums_min = nums[i]
		return res


class Solution:

	def minMoves(self, nums):
		tt = 0
		mx = nums[0]
		n = 0
		for x in nums:
			tt += x
			n += 1
			if x < mx:
				mx = x
		return tt - mx * n