leetcode-80.删除有序数组中的重复项II

题目详情:点此处
在这里插入图片描述

相比26题,允许了重复数据的个数可以为两个。
分析方法与26类似,还是使用双指针法
首先判断nums.length<=2,成立返回nums.length
因为允许相同数据的个数最多为两个,那么判断的方法就成了判断fast和slow-2的数据是否相等,不等则将nums[slow]=nums[fast]

class Solution {
    public int removeDuplicates(int[] nums) {
        int n=nums.length;
        if(n<=2) return n;
        int slow=2;
        for(int fast=2;fast<n;fast++){
        	if(nums[fast]!=nums[slow-2]){
        	nums[slow]=nums[fast];
        	slow++;
        	}
        }
        return slow;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值