您好,欢迎来到画鸵萌宠网。
搜索
您的当前位置:首页OJ题目11--移除数组中的特定元素

OJ题目11--移除数组中的特定元素

来源:画鸵萌宠网

对于该类问题而言,与其说是移除数组中的特定元素,不如说是想办法留下数组中符合要求的元素。有了这一点认识之后,就会有如下的解题思路。

创建另外一个数组,定义两个指针同时指向两个数组的开始位置。原始数组的指针向后遍历整个数组,并判断当前遍历到的元素是否符合要求,当原始数组的指针指向的元素符合要求时,将该值赋给新数组的指针指向的位置,然后两个指针同时向后移动一位。反之,原始数组的指针继续向后寻找,新数组的指针由于没有接收到合适的值,因此原地不动。

经历完这一系列的操作之后,新的数组接收的全是符合要求的值,这样就达到了删去数组中特定元素的目的。

1,

int removeElement(int* nums, int numsSize, int val)
{
    int a=0,b=0;
    while(a<numsSize)
    {
        if(nums[a]!=val)
        {
            nums[b]=nums[a];
            b++;
            a++;
        }
        else
        {
            a++;
        }
    }
    return b;
}

2,

int removeDuplicates(int* nums, int numsSize)
{
    int a=1,b=1;
    while(a<numsSize)
    {
        if(nums[a]!=nums[a-1])
        {
            nums[b]=nums[a];
            a++;
            b++;
        }
        else
        {
            a++;
        }
    }
    return b;
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo8.com 版权所有 湘ICP备2023022238号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务