945. Minimum Increment to Make Array Unique
- 加最少的步數讓數列的元素都不重複。
- 排序
- 數字差多少:
increment = nums[i - 1] - nums[i] + 1
class Solution {
public:
int minIncrementForUnique(vector<int>& nums)
{
int moves = 0;
int n = nums.size();
sort(nums.begin(), nums.end());
// nums = [1, 1, 2, 2, 3, 7]
for (int i = 1; i < n; ++i)
{
// 如果發現目前的數字小於等於前一個數字
if (nums[i - 1] >= nums[i])
{
// 要加的數字等於兩者之差 + 1
int increment = nums[i - 1] - nums[i] + 1;
moves += increment;
// 更新目前的數字
nums[i] = nums[i - 1] + 1;
}
}
return moves;
}
};
- T:
- S: