LeetCode 945 使陣列唯一的最小增量

2021-10-04 06:54:18 字數 1027 閱讀 5884

給定整數陣列 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 我是用雜湊表做的...