5. Remove Element
easyAsked at IndeedStrip all instances of a target value from an array in place and return the new length — Indeed uses it to test in-place filtering before sponsored-listing removal problems.
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 and return the count of remaining elements. The order of the remaining elements may be changed.
Constraints
0 <= nums.length <= 1000 <= nums[i], val <= 50
Examples
Example 1
nums = [3,2,2,3], val = 32, nums = [2,2,_,_]Example 2
nums = [0,1,2,2,3,0,4,2], val = 25, nums = [0,1,3,0,4,_,_,_]Approaches
1. Filter copy
Build a new array of non-matching elements.
- 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. Two pointers
Slow pointer writes kept values; fast pointer walks the array.
- 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:
Indeed-specific tips
Indeed uses this template to gauge if you can filter sponsored vs organic listings in place — name-drop how the two-pointer write index maps to a streaming filter.
Solve it now
Free. No sign-up. Python and JavaScript run instantly in your browser.
Practice these live with InterviewChamp.AI
Drill Remove Element and other Indeed interview questions under real-loop conditions with instant feedback on your reasoning, complexity claims, and code.
Practice these live with InterviewChamp.AI →