wordpress 整站音樂(lè)看廣告收益的正規(guī)平臺(tái)
給你一個(gè)整數(shù)數(shù)組 nums
。每次 move 操作將會(huì)選擇任意一個(gè)滿足 0 <= i < nums.length
的下標(biāo) i
,并將 nums[i]
遞增 1
。
返回使 nums
中的每個(gè)值都變成唯一的所需要的最少操作次數(shù)。
生成的測(cè)試用例保證答案在 32 位整數(shù)范圍內(nèi)。
示例 1:
輸入:nums = [1,2,2] 輸出:1 解釋:經(jīng)過(guò)一次 move 操作,數(shù)組將變?yōu)?[1, 2, 3]。
示例 2:
輸入:nums = [3,2,1,2,1,7] 輸出:6 解釋:經(jīng)過(guò) 6 次 move 操作,數(shù)組將變?yōu)?[3, 4, 1, 2, 5, 7]。 可以看出 5 次或 5 次以下的 move 操作是不能讓數(shù)組的每個(gè)值唯一的。
提示:
-
1 <= nums.length <= 10^5
-
0 <= nums[i] <= 10^5
我的解答
class Solution {public int minIncrementForUnique(int[] nums) {// 對(duì)數(shù)組進(jìn)行排序Arrays.sort(nums);int res = 0;// 遍歷排好序的數(shù)組for(int i = 1;i < nums.length; i++){// 如果當(dāng)前元素等于上一元素,則該元素?cái)?shù)值+1if(nums[i] == nums[i - 1]){nums[i]++;res++;}// 因?yàn)樯厦娌僮骺赡軙?huì)打亂排好序的數(shù)組,所以需要處理錯(cuò)亂的元素// 如果當(dāng)前元素小于上一元素(即排序錯(cuò)亂),則該元素?cái)?shù)值需要增加至比前一元素的值要大// 即增加至比前一元素要大1的值,其操作次數(shù)為(上一元素的值 - 當(dāng)前元素的值 + 1) else if(nums[i] < nums[i - 1]){res += nums[i - 1] - nums[i] + 1;nums[i] = nums[i - 1] + 1;}}return res;}
}
?