您的位置:首页 > 其它

LeetCode 26. Remove Duplicates from Sorted Array

2017-07-13 15:48 309 查看
用了两种简便方法完成。个人更prefer第二种,且方法二时间更短。用到的函数:unique,erase。 unique为对nums重排序使其在it位置前无重复元素。 用erase函数删除it位置后的重复函数,再返回nums的大小即为无重复元素的长度。

class Solution {

public:

    int removeDuplicates(vector<int>& nums) {

    /*

        // Method 1

        int count=0;

        

        for(int i=1; i<nums.size(); i++)

        {

            if(nums[i] == nums[i-1]) count++;

            else nums[i-count]=nums[i];

        }

        return nums.size()-count;

    */

        

        // Method 2

        

        auto it = unique(nums.begin(), nums.end());

        nums.erase(it, nums.end());

        return nums.size();

        

               

    }

};

注:函数声明auto,编译器可根据该声明推导变量实际的类型,具有简化复杂类型变量声明及避免出错的作用。但不可用其进行类型转换,不能用于模板和函数的声明,使用时必须有初始值。详情可见 http://blog.csdn.net/hushujian/article/details/43196589
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: