1. 程式人生 > >leetcode (Minimum Moves to Equal Array Elements)

leetcode (Minimum Moves to Equal Array Elements)

Title:Minimum Moves to Equal Array Elements    453

Difficulty:Easy

原題leetcode地址:   https://leetcode.com/problems/minimum-moves-to-equal-array-elements/

 

1.  問題轉換

時間複雜度:O(n),兩次一層for迴圈,迴圈最長為n。

空間複雜度:O(1),沒有申請額外空間。

    /**
     * 問題轉換:出最大值不做加1操作,其實反過來就是將最大值做減1操作
     * @param nums
     * @return
     */
    public static int minMoves(int[] nums) {

        int count = 0;
        int min = Integer.MAX_VALUE;

        for (int i = 0; i < nums.length; i++) {
            if (nums[i] < min) {
                min = nums[i];
            }
        }

        for (int i = 0; i < nums.length; i++) {
            count += (nums[i] - min);
        }

        return count;

    }