Skip to main content

5. Remove Element

easyAsked at Quora

Remove 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 <= 100
  • 0 <= nums[i], val <= 50

Examples

Example 1

Input
nums = [3,2,2,3], val = 3
Output
2, nums = [2,2,_,_]

Example 2

Input
nums = [0,1,2,2,3,0,4,2], val = 2
Output
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.

Output

Press Run or Cmd+Enter to execute

Companies that also ask Remove Element