面试经典 150 题 3 —(数组 / 字符串)— 26. 删除有序数组中的重复项

26. 删除有序数组中的重复项

面试经典 150 题 3 —(数组 / 字符串)— 26. 删除有序数组中的重复项_第1张图片

方法一
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        for(int i =0; i < nums.size()-1; i++){
            for(int j = i + 1; j < nums.size(); j++){
                if(nums[i] == nums[j]){
                    nums.erase(nums.begin() + j);
                    j--;
                }
            }
        }
        return nums.size();
    }
};
方法二
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int n = nums.size();
        if(n == 0){
            return 0;
        }
        int fast = 1,slow = 1;
        while(fast<n){
            if(nums[fast] != nums[fast-1]){
                nums[slow] = nums[fast];
                slow++;
            }
            fast++;
        }
        return slow;
    }
};

你可能感兴趣的:(leetcode,面试,算法,c++,leetcode)