26. remove duplicates from sorted array

题目描述

给一组已排序的数,去重,返回剩余数的个数及剩下的数。

题目分析

记录第一个数, 若下一个数与之不相等,则记录当前数。

代码

#include <iostream>
#include <vector>

class Solution {
public:
  int removeDuplicates(std::vector<int>& nums) {
    if (nums.size() == 0) {
      return 0;
    }
    int last = nums[0];
    int result = 1;
    std::vector<int> v;
    v.push_back(last);
    for (unsigned i = 0; i < nums.size(); ++i) {
      if (last != nums[i]) {
        ++result;
        last = nums[i];
        v.push_back(last);
      }
    }
    for (int i = 0; i < result; ++i) {
      nums[i] = v[i];
    }
    return result;
  }
};

总结

读错题了。