Skip to main content

5. Remove Element

easyAsked at Glassdoor

Remove all instances of a value in place — Glassdoor uses this to confirm you can think about partition pointers without a temp array.

By Alex Chen, Founder, InterviewChamp.AI · Last verified

Problem

Given an integer array nums and an integer val, remove all occurrences of val in nums in place. Return the number of elements in nums which are not equal to val. The order of the elements may be changed.

Constraints

  • 0 <= nums.length <= 100
  • 0 <= nums[i] <= 50
  • 0 <= val <= 100

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. Splice in place

Repeatedly splice out the value.

Time
O(n^2)
Space
O(1)
let i = 0;
while (i < nums.length) {
  if (nums[i] === val) nums.splice(i, 1);
  else i++;
}
return nums.length;

Tradeoff:

2. Two pointers

Slow writes survivors; fast scans.

Time
O(n)
Space
O(1)
function removeElement(nums, val) {
  let slow = 0;
  for (let fast = 0; fast < nums.length; fast++) {
    if (nums[fast] !== val) {
      nums[slow] = nums[fast];
      slow++;
    }
  }
  return slow;
}

Tradeoff:

Glassdoor-specific tips

Glassdoor expects you to mention that order can change — the bonus signal is asking if you can swap-from-end (saves writes when most values match) which mirrors their flagged-review purge job.

Solve it now

Free. No sign-up. Python and JavaScript run instantly in your browser.

Output

Press Run or Cmd+Enter to execute

Practice these live with InterviewChamp.AI

Drill Remove Element and other Glassdoor interview questions under real-loop conditions with instant feedback on your reasoning, complexity claims, and code.

Practice these live with InterviewChamp.AI →