Find All Numbers Disappeared in an Array
In-Place Marking
Asked at 7 companies
3 recent
- Amazon
- Microsoft
- Tinkoff
- Bloomberg
- tcs
- Meta
Community-reported Β· source Β· updated 2026-10-08. β asked in the last 6 months.
Go step by step: try it yourself before the video and the visual. Progress saves on this device.
0 / 110 pointsSolved (Easy) 0/20Reviews 0/50Mastered 0/25Practice steps 0/15
Step 1
Know these before you start
Practise each one here, or tick what you already know
Step 2
Try it on paper
5β10 minutes, no code yet
In the wild Β· Every βSort byβ button: Sorting a spreadsheet by price, then by name, needs a stable sort, which is why Python and JavaScript both use merge-sort-based TimSort.
ProblemProblem statementGiven an array nums of n integers where each value is in the range [1, n], return an array of all the integers in [1, n] that do not appear in nums.ReadHide
Problem Statement
Given an array nums of n integers where each value is in the range [1, n], return an array of all the integers in [1, n] that do not appear in nums.
Added 2026-11-05 from Srujan's LeetCode Recent AC list (photo) β not previously in the repo.
Input / Output
Input: nums = [4,3,2,7,8,2,3,1]
Output: [5,6]
Input: nums = [1,1]
Output: [2]
Input: nums = [1,2,3]
Output: []
Code it here
Tab / Shift+Tab indent Β· Backspace removes a whole indent Β· β/Ctrl+Enter runs Β· Esc leaves the editor
Step 6
Get it accepted
All test cases pass
Step 7
Review it so it sticks
Re-solve from memory after
The step that matters most: without reviews most of a solved problem fades within weeks. Three short re-solves, each just as you start to forget, are what make it yours.
Your notes
Three lines in your own words. They come back with this problem's reviews, so you can check yourself after recalling the solution.
Solve it yourself before you look
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
Approach
Pattern Recognition
In-Place Marking β the values are already valid indices (1..n), so the array can be its own checklist. For each value v, flip the sign of the element at index v - 1. After one pass, the indices that are still positive were never visited β their numbers are the missing ones. No extra set needed.
Approach
Brute Force β Check Every Value, O(nΒ²)
for x from 1 to n:
if x never appears in nums (linear scan): add x to the answer
Optimized β In-Place Sign Marking, O(n)
for v in nums:
i = abs(v) - 1
if nums[i] > 0: nums[i] = -nums[i] # mark value (i + 1) as seen
answer = [i + 1 for i where nums[i] > 0] # never marked = missing
Complexity
| Approach | Time | Space | Notes |
|---|---|---|---|
| Check every value | O(nΒ²) | O(1) extra | Re-scans the array per value |
| In-place marking | O(n) | O(1) extra | The array is its own checklist |
Solution code
from typing import List
class SolutionBruteForce:
"""O(n^2) time | O(1) extra space β check every value 1..n by scanning."""
def findDisappearedNumbers(self, nums: List[int]) -> List[int]:
answer = []
for x in range(1, len(nums) + 1):
found = False
for v in nums:
if v == x:
found = True
break
if not found:
answer.append(x)
return answer
class Solution:
"""O(n) time | O(1) extra space β mark seen values by flipping signs."""
def findDisappearedNumbers(self, nums: List[int]) -> List[int]:
for v in nums:
i = abs(v) - 1
if nums[i] > 0:
nums[i] = -nums[i] # value (i + 1) is present
return [i + 1 for i in range(len(nums)) if nums[i] > 0]Other ways to solve it
- Thought of another approach (slower, or cleverer)? Code it here: the same tests check any approach.
- Community solutions on LeetCode β for many more versions, in many languages. Read them after you've solved it.
Revising this one?
- βSolve it from memory before peeking
- βSay the pattern out loud, not just the code
- βExplain it like you would to a friend
- βTry it again in a different language