Leetcode 26 删除有序数组中的相同元素

题目要求:

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

分析:有序数组中相同元素肯定在连续空间上,可以将第一个元素看作非重复的有序表,之后依次判断后面的元素是否与前面的非重复有序表的最后一个元素相同,如果相同则继续向后判断,如果不同则插入到非重复有序表的最后。

c++:

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int i,j;
        if(nums.size()==0)
            return 0;
        else{
        for(i=0,j=1;j<nums.size();j++)
        {
            if(nums[i]!=nums[j])
               nums[++i]=nums[j];   
        }
        }
    return i+1;
    }
};


全部评论

相关推荐

点赞 评论 收藏
分享
下北澤大天使:你是我见过最美的牛客女孩😍
点赞 评论 收藏
分享
那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务