Remove Duplicates from Sorted Array

 

用两个指针,一个保存当前不重复数坐标,另一个不停向后移动,直到检查完所有的数。每次只取一个不重复的数。时间复杂度为O(n)。

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
      if(nums.size()==0||nums.size()==1) return nums.size();
      int i=0,j=1,len=0,reset;
      while(j<nums.size())
      {
          if(nums[i]!=nums[j]) 
          {
             nums[++i]=nums[j++];
              continue;
          }
          else {
              while(j<nums.size()&& nums[j]==nums[i])j++;
              if(j<nums.size()) nums[++i]=nums[j++];
          }
      }
      return i+1;
    }
};

 

posted on 2016-03-04 09:09  RenewDo  阅读(155)  评论(0编辑  收藏  举报

导航