5. Remove Element
easyAsked at QuoraRemove all occurrences of a value from an array in place and return the new length.
By Sam K., Founder, InterviewChamp.AI · Last verified
Problem
Given an integer array nums and an integer val, remove all occurrences of val in nums in place and return the new length. The order of remaining elements may change.
Constraints
0 <= nums.length <= 1000 <= nums[i], val <= 50
Examples
Example 1
Input
nums = [3,2,2,3], val = 3Output
2, nums = [2,2,_,_]Example 2
Input
nums = [0,1,2,2,3,0,4,2], val = 2Output
5, nums = [0,1,4,0,3,_,_,_]Approaches
1. Filter copy
Build a new array without val then write back.
- Time
- O(n)
- Space
- O(n)
const out = nums.filter(x => x !== val);
for (let i = 0; i < out.length; i++) nums[i] = out[i];
return out.length;Tradeoff:
2. Write pointer
Advance a write index only when value differs from val.
- Time
- O(n)
- Space
- O(1)
function removeElement(nums, val) {
let k = 0;
for (let i = 0; i < nums.length; i++) {
if (nums[i] !== val) nums[k++] = nums[i];
}
return k;
}Tradeoff:
Quora-specific tips
Quora uses simple in-place writes to test whether you reach for streaming filters — their spam-removal pipeline scans answer batches and writes survivors back without allocating shadow arrays.
Solve it now
Free. No sign-up. Python and JavaScript run instantly in your browser.