day9 (945. 使數組唯一的最小增量)

  • 題目描述:給定整數數組 A,每次 move 操作將會選擇任意 A[i],並將其遞增 1。
    返回使 A 中的每個值都是唯一的最少操作次數。

  • 示例 1:

    輸入:[1,2,2]
    輸出:1
    解釋:經過一次 move 操作,數組將變爲 [1, 2, 3]。

  • 示例 2:

    輸入:[3,2,1,2,1,7]
    輸出:6
    解釋:經過 6 次 move 操作,數組將變爲 [3, 4, 1, 2, 5, 7]。
    可以看出 5 次或 5 次以下的 move 操作是不能讓數組的每個值唯一的。

  • 提示:

    0 <= A.length <= 40000
    0 <= A[i] < 40000

  • 我的題解

    class Solution {
        public int minIncrementForUnique(int[] A) {
            Arrays.sort(A);
            int res = 0;
            for(int i = 1;i< A.length;i++) {
                if(A[i] <= A[i-1]) {
                    int tmp =  A[i-1] + 1;
                    res += tmp - A[i];
                    A[i] = tmp;
                }
            }
            return res;
        }
    }
    

題目來源:https://leetcode-cn.com/problems/minimum-increment-to-make-array-unique/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章