Loading the journal
Loading the journal
Two Pointers (Read/Write)
8 recent
Go step by step: try it yourself before the video and the visual. Progress saves on this device.
Community-reported · source · updated 2026-10-08. ● asked in the last 6 months.
Step 1
Know these before you start
Tick what you already know
Step 2
Try it on paper
5–10 minutes, no code yet
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.
Return k, the number of unique elements. The first k elements of nums must hold the unique elements in their original order; what is left beyond index k does not matter.
Input: nums = [1,1,2]
Output: 2, nums = [1,2,_]
Input: nums = [0,0,1,1,1,2,2,3,3,4]
Output: 5, nums = [0,1,2,3,4,_,_,_,_,_]
1 ≤ nums.length ≤ 3 * 10^4
-100 ≤ nums[i] ≤ 100
nums is sorted in non-decreasing order
k slots are checkedk = 1k = 1k = nStep 6
Get it accepted
All test cases pass
Step 7
Review it so it sticks
Re-solve from memory after
Reading the solution first feels like progress, but it makes the next similar problem — and the interview version — much harder, because you skipped the part where you figure it out. Give it an honest 20–30 minutes. Stuck? Re-read the pattern, watch the concept video, or try the brute force first.
Hidden: approach · solution code · optimal solution