LeetCode從排序數組中刪除重複項

給定一個排序數組,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後數組的新長度。

不要使用額外的數組空間,你必須在原地修改輸入數組並在使用 O(1) 額外空間的條件下完成。

給定數組 nums = [1,1,2],

函數應該返回新的長度
2, 並且原數組 nums 的前兩個元素被修改爲 1, 2

你不需要考慮數組中超出新長度後面的元素。

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
    if(nums.size()==0)
        return nums.size();//它有一組測試數據是空的nums
    int j=1;
    for(int i = 1; i < nums.size(); i++)
    {
        if(nums[i] != nums[j-1])
        {
            nums[j] = nums[i];
            j++;
        }
    }
    nums.erase(nums.begin()+j,nums.end());//刪除後面區間從j到最後的數
    return nums.size();
    }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章