Skip to main content
Back to problems
#26
Easy Algorithms

Remove duplicates from sorted array

Array Two Pointers
62.3% acceptance
Jan 12, 2026
18819
20480
Given an integer array nums sorted in non-decreasing order, remove the duplicates in-place such that each unique element appears only once. The relative order of the elements should be kept the same. Consider the number of unique elements in nums to be k​​​​​​​​​​​​​​. After removing duplicates, return the number of unique elements k. The first k elements of nums should contain the unique numbers in sorted order. The remaining elements beyond index k - 1 can be ignored. 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]; } If all assertions pass, then your solution will be accepted.

Solution

Rust
Time O(n)
Space O(1)
LeetCode
solution.rs
impl Solution {
  pub fn remove_duplicates(nums: &mut Vec<i32>) -> i32 {
    if nums.is_empty() {
      return 0;
    }
    
    let mut write_index = 1;
    
    for read_index in 1..nums.len() {
      if nums[read_index] != nums[write_index - 1] {
        nums[write_index] = nums[read_index];
        write_index += 1;
      }
    }
    
    write_index as i32
  }
}