Remove Element

Given an array and a value, remove all instances of that value in-place and return the new length.

Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.

The order of elements can be changed. It doesn't matter what you leave beyond the new length.

Example:

Given nums = [3,2,2,3], val = 3,

Your function should return length = 2, with the first two elements of nums being 2.

Solution: Selection Sort

We can modify selection sort to move target element to the right side of the array. In selection sort, the index indicator always points to the next swap position.

int removeElement(vector<int>& nums, int val) {
    int size = 0;
    for(int i=0; i<nums.size(); i++) {
        if (nums[i] != val) {
            swap(nums[i], nums[size]);
            size += 1;
        }
    }
    return size;
}

results matching ""

    No results matching ""