LeetCode 26 - Remove Duplicates from Sorted Array

来源:互联网 发布:西科大网络教育怎么样 编辑:程序博客网 时间:2024/05/16 07:13

一、问题描述

Description:

Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.

For example:

Given input array nums = [1,1,2]:

Your function should return length = 2, with the first two elements of nums being 1 and 2 respectively. It doesn’t matter what you leave beyond the new length.

Note:

Do not allocate extra space for another array, you must do this in place with constant memory.

给一个有序数组,原地移除重复的元素,并返回新数组的长度。

注意:只能原地工作,不能使用额外的数组。


二、解题报告

由于输入的是有序数组,在遍历过程中,我们只需要判断是否与前面的重复即可。

代码:

class Solution {public:    int removeDuplicates(vector<int>& nums) {        if(nums.empty())             return 0;        int count = 1;        int pre = nums[0];        vector<int>::iterator beg = nums.begin();        for(++beg; beg!=nums.end(); ) {   // 从第二个开始            if(*beg == pre)               // 重复,移除                beg = nums.erase(beg);            else                          // 不重复,更新pre            {                pre = *beg;                ++beg;            }        }        return nums.size();    }};





LeetCode答案源代码:https://github.com/SongLee24/LeetCode


0 0
原创粉丝点击