leetcode——26. Remove Duplicates from Sorted Array && 80. Remove Duplicates from Sorted Array II

来源:互联网 发布:网站主域名 编辑:程序博客网 时间:2024/05/17 15:59

26. Remove Duplicates from Sorted Array

题目:更新有序数列nums,使得每个元素最多出现一次,并返回更新后数列长度

思路:每个元素与前一个元素相比较是否相同,若不同则更新

代码:

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


80. Remove Duplicates from Sorted Array II

题目:更新有序数列nums,使得每个元素出现次数不超过两次。并返回更新后数列长度。

思路:每个元素与前一个元素相比较是否相同并且之前只出现过一次。

代码:

class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int sum=0;
        bool flag=true;
        if(nums.size()<=2) return nums.size();
        for(int i=1;i<nums.size();i++){
           if(nums[i]==nums[i-1]){
               if(flag==true){
                   nums[++sum]=nums[i];
                   flag=false;
               }
           }
           else{
               flag=true;
               nums[++sum]=nums[i];
           }
        }
        return sum+1;
    }
};

0 0
原创粉丝点击