美文网首页
leetcode 26. 删除排序数组中的重复项

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

作者: Source_Chang | 来源:发表于2020-11-13 19:22 被阅读0次

    leetcode

    1. 使用 STL 的删除方法
      C++:
    class Solution {
    public:
        int removeDuplicates(vector<int>& nums) {
    
             if ( nums.empty() ) {
    
                return 0;
            }
    
            int size = nums.size();
            int lastResult = nums[0];
            for ( int i = 1; i < nums.size(); ) {
    
                if ( nums[i] == lastResult ) {
    
                    --size;
                    nums.erase(nums.begin() + i);
    
                } else {
                    
                    lastResult = nums[i];
                    ++i;
                }
            }
    
            return size;
        }
    };
    

    2,双指针法
    C++:

    class Solution {
    public:
        int removeDuplicates(vector<int>& nums) {
    
             if ( nums.empty() ) {
    
                return 0;
            }
    
            int i = 0;
            for ( int j = 1; j < nums.size(); ++j ) {
    
                if ( nums[i] != nums[j] ) {
    
                    i++;
                    nums[i] = nums[j];
                }
            }
    
            return i + 1;
        }
    };
    

    相关文章

      网友评论

          本文标题:leetcode 26. 删除排序数组中的重复项

          本文链接:https://www.haomeiwen.com/subject/mbmuvktx.html