給定一個排序數組,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後數組的新長度。
處理邊界情況:
nums
為空,直接返回長度 0,因為沒有元素可移除。遍歷陣列:
uniqueIndex
來記錄不重複元素的最後一個位置。uniqueIndex
位置,並將 uniqueIndex
向前移動一位。返回結果:
uniqueIndex
的值即為不重複元素的總數,返回它作為新陣列的長度。class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if (nums.empty()) return 0; // 如果陣列為空,直接返回 0
int uniqueIndex = 1; // 記錄不重複元素的最後一個位置
for (int i = 1; i < nums.size(); ++i) {
// 當遇到不重複的元素時,將它放到 uniqueIndex 位置
if (nums[i] != nums[i - 1]) {
nums[uniqueIndex] = nums[i];
++uniqueIndex; // 更新 uniqueIndex
}
}
return uniqueIndex; // 返回不重複元素的長度
}
};