双指针问题 Leetcode 080删除有序数组中重复元素 (问题汇总)(推广至每个元素 最多出现k次 )

子问题

Leetcode 026删除有序数组中重复元素:
https://blog.csdn.net/qq_52934831/article/details/121370379?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163871986016780255281827%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=163871986016780255281827&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_v2~rank_v29-1-121370379.pc_v2_rank_blog_default&utm_term=026&spm=1018.2226.3001.4450

地址

https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array-ii/

描述

在这里插入图片描述

思想

https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array-ii/solution/gong-shui-san-xie-guan-yu-shan-chu-you-x-glnq/
在这里插入图片描述

代码

class Solution {
    
    
public:
    int removeDuplicates(vector<int>& nums) {
    
    
        return getnewlength(nums,2);
    }
    //推广至每个元素最多出现k次
    int getnewlength(vector<int>&nums,int k){
    
    
        int u=0;
        for(int x:nums){
    
    
            if(u<k||nums[u-k]!=x) nums[u++]=x;
        }
        return u;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_52934831/article/details/121738140