# [945\. Minimum Increment to Make Array Unique](https://leetcode.com/problems/minimum-increment-to-make-array-unique/) - 加最少的步數讓數列的元素都不重複。 - 排序 - 數字差多少:`increment = nums[i - 1] - nums[i] + 1` :::spoiler Solution ```cpp= 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; } }; ``` - 時間複雜度:$O(n \cdot \log n)$ - 空間複雜度:$O(1)$ :::