其他分享
首页 > 其他分享> > LeetCode26. 删除排序数组中的重复项

LeetCode26. 删除排序数组中的重复项

作者:互联网

题目:

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

思路:

用一个计数器count记录独特数字即可。

题解:

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        if(nums.size()==0){
            return 0;
        }
        if(nums.size()==1){
            return 1;
        }
        int i,count = 0;//count记录独特数字
        for(i = 0;i<nums.size()-1; i++){
            while(nums[i]==nums[i+1])
            {
                i += 1;
                if(i+1 > nums.size()-1){ //如果越界
                    break;
                }
            }
            count += 1;
            nums[count-1] = nums[i];
        }
        //处理边界情况
        if(nums[nums.size()-1]==nums[nums.size()-2]){
            return count;
        }else{
            count += 1;
            nums[count -1] = nums[nums.size()-1];
            return count;
        }
    }
};

 

标签:count,排序,return,nums,int,数组,LeetCode26,size
来源: https://blog.csdn.net/Findingxu/article/details/100862328