-
題目描述:給定整數數組 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/