LeetCode80. Remove Duplicates from Sorted Array II

class Solution {
    public int removeDuplicates(int[] nums) {
       //第一种方法
        if(nums.length<3){
            return nums.length;
        }
       int count=1;
        int pre=0,cur=1;
        while(cur<nums.length){
            if(nums[pre]==nums[cur] && count==0) ++cur;
            else{
                if(nums[pre]==nums[cur]) --count;
                else count=1;
                nums[++pre]=nums[cur++];
            }
        }
        return pre+1;
        //第二种方法
//          if (nums.length <= 2)
// 			return nums.length;
 
// 		int prev = 1; // point to previous
// 		int curr = 2; // point to current
 
// 		while (curr < nums.length) {
// 			if (nums[curr] == nums[prev] && nums[curr] == nums[prev - 1]) {
// 				curr++;
// 			} else {
// 				nums[++prev] = nums[curr++];
// 			}
// 		}
// 		return prev + 1;
    }
}

猜你喜欢

转载自blog.csdn.net/u013244775/article/details/86490044
今日推荐