美文网首页LintCode解题思路
OJ lintcode 删除排序数组中的重复数字

OJ lintcode 删除排序数组中的重复数字

作者: DayDayUpppppp | 来源:发表于2017-02-21 14:39 被阅读3次

    给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。
    不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。
    您在真实的面试中是否遇到过这个题?
    Yes
    样例
    给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]。

    class Solution {
    public:
        /**
         * @param A: a list of integers
         * @return : return an integer
         */
        int removeDuplicates(vector<int> &nums) {
            // write your code here
            if(nums.size()==0){
                return 0;
            }
    
            int k=0;
            int len=nums.size();
            for(int i=1;i<len;i++){
                if(nums[k]!=nums[i]){
                    k++;
                    nums[k]=nums[i];
                }
            }
    
            nums.resize(k+1);
    
            return k+1;
        }
    };
    

    相关文章

      网友评论

        本文标题:OJ lintcode 删除排序数组中的重复数字

        本文链接:https://www.haomeiwen.com/subject/qukuwttx.html