Given a non-empty integer array of size n, find the minimum number of moves required to make all array elements equal, whe Re a move is incrementing n-1 elements by 1. example:input:[]output:3explanation:only three moves is needed (remember each move increments (elements): [[+] = [ 2,3,3] = [3,4,3] = [ 4,4,4]
Idea 1:suppose It takes y steps to equal each elements and then this equation stands:
(min + y) * Num.length = = sum + (num.length-1) *y, where min + y is each element's value when all elements equal
Idea 2:add 1
n - 1
to elements are the same as subtracting from one 1
element, w.r.t goal of making the elements I n the array equal.
So, the best-of-the-elements in the array equal to the min
element.
sum(array) - n * minimum
1 Public classSolution {2 Public intMinmoves (int[] nums) {3 if(nums==NULL|| nums.length==0)return0;4 intMin =Integer.max_value;5 intsum = 0;6 for(intnum:nums) {7Min =math.min (min, num);8Sum + =num;9 }Ten returnSum-min *nums.length; One } A}
Leetcode:minimum Moves to Equal Array Elements