移除元素
此题简单,用双指针方法即可,
如果右指针指向的元素不等于val,它一定是输出数组的一个元素,我们就将右指针指向的元素复制到左指针位置,然后将左右指针同时右移;
如果右指针指向的元素等于 val,它不能在输出数组里,此时左指针不动,右指针右移一位。
且最后需要输出的数组长度就是left的值。不多说,上代码:
int removeElement(int* nums, int numsSize, int val)
{
int left =0;
int right =0;
for(int i =0;i<numsSize;i++)
{
if(nums[right] != val)
{
nums[left]=nums[right];
++left;
++right;
}
else
{
++