Remove Element solution using TypeScript
This post outlines my TypeScript solution to the "Remove Element" question on LeetCode.
Algorithm: The solution simply uses a pointer to iterate over the array. When the pointer finds a matching value, it splices it out of the array. When it reaches the end of the array, it returns the length of the array.
Time Complexity: Because the array will be iterated one time, the time complexity is O(n) where n represents the number of elements in the array.
Space Complexity: Because the solution will use a constant amount of space, the space complexity is O(1).
/**
* Remove Element
* Given an array nums and a value val, remove all
* instances of that value in-place and return the new length.
*
* Time Complexity: O(n)
* Space Complexity: O(1)
*
* removeElement([3,2,2,3], 3) // 3, [2,2]
* removeElement([0,1,2,2,3,0,4,2], 2) // 2, [0,1,3,0,4]
*/
function removeElement(nums: number[], val: number): number {
let ptr = 0;
while (ptr < nums.length) {
if (nums[ptr] === val) {
nums.splice(ptr, 1);
continue;
}
ptr += 1;
}
return nums.length;
}