LeetCode 80. Remove Duplicates from Sorted Array II

原题链接在这里:https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/

题目:

Follow up for "Remove Duplicates":
What if duplicates are allowed at most twice?

For example,
Given sorted array nums = [1,1,1,2,2,3],

Your function should return length = 5, with the first five elements of nums being 1122 and 3. It doesn't matter what you leave beyond the new length.

题解:

类似Remove Duplicates from Sorted Array不同就是允许一次重复,加一个limit初始为0, 当limit小于1的时可以赋值到nums[count], 同时limit++, limit等于1时跳过。

Time Complexity: O(nums.length). Space: O(1).

AC Java:

 1 public class Solution {
 2     public int removeDuplicates(int[] nums) {
 3         if(nums == null || nums.length == 0){
 4             return 0;
 5         }
 6         
 7         int count = 1;
 8         int limit = 0;
 9         for(int i = 1; i<nums.length; i++){
10             if(nums[i] != nums[i-1]){
11                 nums[count++] = nums[i];
12                 limit = 0;
13             }else if(limit < 1){
14                 nums[count++] = nums[i];
15                 limit++;
16             }
17         }
18         return count;
19     }
20 }
原文地址:https://www.cnblogs.com/Dylan-Java-NYC/p/4825001.html