給定整數陣列 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
1.建立頻次陣列儲存陣列的值,再遍歷頻次陣列,如果當前頻次大於1則後面一位的頻次等於後面頻次加上前面頻次減1,運算元加上當前頻次減1,直到所有位頻次都為1。
public
intminincrementforunique
(int
a)int count=0;
//遍歷陣列,若當前頻次大於1,將重複的頻次往後移
for(
int i =
0; i < ints.length; i++)}
return count;
}
2.對陣列進行排序,然後遍歷陣列,如果當前數小於等於前乙個數,則變為前乙個數加1,運算元等於原運算元加上改變後的數減去改變前的數,即改變的數值。
public
intminincrementforunique
(int
a)}return count;
}
Leetcode 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 操作,陣列將變為...
leetcode945 使陣列唯一的最小增量
給定整數陣列 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 操作...
LeetCode 945 使陣列唯一的最小增量
給定整數陣列 a,每次 move 操作將會選擇任意 a i 並將其遞增 1。返回使 a 中的每個值都是唯一的最少操作次數。示例 1 輸入 1,2,2 輸出 1 解釋 經過一次 move 操作,陣列將變為 1,2,3 示例 2 0 a.length 40000 0 a i 40000 我是用雜湊表做的...