Last updated on October 9th, 2024 at 10:35 pm

Here, We see ** Remove Duplicates from Sorted Array II LeetCode Solution**. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc. with different approaches.

*List of all LeetCode Solution*

*List of all LeetCode Solution*

## Topics

Array, Two-Pointers

## Companies

## Level of Question

Medium

**Remove Duplicates from Sorted Array II LeetCode Solution**

## Table of Contents

**Problem Statement**

Given an integer array `nums`

sorted in **non-decreasing order**, remove some duplicates **in-place** such that each unique element appears **at most twice**. The **relative order** of the elements should be kept the **same**.

Since it is impossible to change the length of the array in some languages, you must instead have the result be placed in the **first part** of the array `nums`

. More formally, if there are `k`

elements after removing the duplicates, then the first `k`

elements of `nums`

should hold the final result. It does not matter what you leave beyond the first `k`

elements.

Return `k`

* after placing the final result in the first *`k`

* slots of *`nums`

.

Do **not** allocate extra space for another array. You must do this by **modifying the input array in-place** with O(1) extra memory.

**Custom Judge:**

The judge will test your solution with the following code:

```
int[] nums = [...]; // Input array
int[] expectedNums = [...]; // The expected answer with correct length
int k = removeDuplicates(nums); // Calls your implementation
assert k == expectedNums.length;
for (int i = 0; i < k; i++) {
assert nums[i] == expectedNums[i];
```

Code language: PHP (php)

If all assertions pass, then your solution will be **accepted**.

Example 1: Input: nums = [1,1,1,2,2,3] Output: 5, nums = [1,1,2,2,3,_] Explanation: Your function should return k = 5, with the first five elements of nums being 1, 1, 2, 2 and 3 respectively. It does not matter what you leave beyond the returned k (hence they are underscores). Example 2: Input: nums = [0,0,1,1,1,1,2,3,3] Output: 7, nums = [0,0,1,1,2,3,3,_,_] Explanation: Your function should return k = 7, with the first seven elements of nums being 0, 0, 1, 1, 2, 3 and 3 respectively. It does not matter what you leave beyond the returned k (hence they are underscores).

**1. Remove Duplicates from Sorted Array II Leetcode Solution C++**

class Solution { public: int removeDuplicates(vector<int>& nums) { if(nums.size()<=2) return nums.size(); int count=1,j=1; for(int i=1;i<nums.size();i++){ if(nums[i-1]==nums[i]) count++; else count=1; if(count<=2) nums[j++]=nums[i]; } return j; } };

**2. Remove Duplicates from Sorted Array II Leetcode Solution Java**

class Solution { public int removeDuplicates(int[] nums) { int i = 0; for (int n : nums) if (i < 2 || n > nums[i - 2]) nums[i++] = n; return i; } }

**3. Remove Duplicates from Sorted Array II Leetcode Solution JavaScript**

var removeDuplicates = function(nums) { let j = 0; let i = 0; for (; i < nums.length; i += 1){ if (nums[i] !== nums[i + 2]) { nums[j] = nums[i]; j += 1; } } return j; };

**4. Remove Duplicates from Sorted Array II Leetcode Solution Python**

class Solution(object): def removeDuplicates(self, nums): k = 0 for i in nums: if k < 2 or i != nums[k - 2]: nums[k] = i k += 1 return k