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.

int removeElement(int* nums, int numsSize, int val)
{
    int i = 0;
    int j = 0;
    
    for(i = 0;i < numsSize ;i++)
    {
        if(val == nums[i])
        {
            continue;
        }
        nums[j++] = nums[i];
    }
    return j;
}

经验与教训

在第一题中我们学习了break在for循环中的用法,这里我们看到了continue,continue的作用是跳过执行循环中的某些次数。比如在nums[i]的值为val时,不去执行后面的赋值动作,执行后的结果是将非valu元素提前,相对顺序不变。