【LeetCode】26. Remove Duplicates from Sorted Array 解题小结

题目:

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

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

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.

 

这个题目只要求返回不重复数组长度length,而最后数组只要是前length个元素是不重复元素就行,也就是说,之后的数组啥样没关系,所以可以用以下方法直接得到。

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int indexDuplicate, x, y;
        x = nums.size();
        indexDuplicate = 0;
        
        for (int i = 0; i < nums.size(); i++){
            if  (indexDuplicate == 0 || nums[i] > nums[i-1]){
                nums[indexDuplicate++] = nums[i];
            }
        }
        return indexDuplicate;
    }
};

 

posted on 2016-08-26 05:19  医生工程师  阅读(108)  评论(0编辑  收藏  举报

导航