Remove duplicates from sorted array
The problem
Given an integer array nums sorted in non-decreasing order, remove all duplicates in-place so that each unique element appears only once.
Return the number of unique elements in the array.
If the number of unique elements be** k,** then,
- Change the array nums** such that the first k **elements of nums contain the unique values in the order that they were present originally.
- The remaining elements, as well as the size of the array does not matter in terms of correctness.
- The driver code will assess correctness by printing and checking only the first k elements of the modified array.
An array sorted in **non-decreasing order is an array where every element to the right of an element is either equal to or greater **in value than that element.
Input: nums = [0, 0, 3, 3, 5, 6] Output: 4 Explanation: Resulting array = [0, 3, 5, 6, _, _] There are 4 distinct elements in nums and the elements marked as _ can have any value.
Input: nums = [-2, 2, 4, 4, 4, 4, 5, 5] Output: 4 Explanation: Resulting array = [-2, 2, 4, 5, _, _, _, _] There are 4 distinct elements in nums and the elements marked as _ can have any value.
Input: nums = [-30, -30, 0, 0, 10, 20, 30, 30] Select the possible resulting array.
- 1 <= nums.length <= 105
- -104 <= nums[i] <= 104
- nums is sorted in non-decreasing order.
cpp
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
}
};java
class Solution {
public int removeDuplicates(int[] nums) {
}
}python
class Solution:
def removeDuplicates(self, nums: list[int]) -> int:javascript
class Solution {
removeDuplicates(nums) {
}
}csharp
public class Solution {
public int removeDuplicates(List<int> nums) {
}
}go
func removeDuplicates(nums []int) int {
//your code goes here
}Stuck? Show a way to structure it+
- 01State that the input is sorted and mutation is allowed
- 02Initialize the write pointer after the first item
- 03Scan with a read pointer and compare against the last kept item
- 04Return the write length
Reference answer
Then expect these follow-ups
How would you allow at most two copies?
Tests: follow-up reasoning
What changes if the array is unsorted?
Tests: constraint adaptation
Free to read · better with Enzo
Practice this out loud with Enzo
Enzo runs it as a mock interview, pushes back with follow-ups, and grades you on the rubric.
Next question