Problem Statement
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.
Link to GitHub : Code
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]
Solution
- Adding
1ton - 1elements is the same as subtracting1from one element, w.r.t goal of making the elements in the array equal.So, best way to do this is make all the elements in the array equal to theminelement.
public static int get(int arr []) { if (arr.length == 0 ) return 0; int min=arr[0]; for(int n: arr) { min=Math.min(min, n); } int res=0; for(int n: arr) { res+=n-min; } return res; }

No comments:
Post a Comment