题3:移除元素

C++代码(法一):

int i,j=0;
    if(nums.size()==0)
    {
        return 0;
    }
    else
    {
        for(i=0;i<nums.size();i++)
        {
            if(nums[i]!=val)
            {
                nums[j]=nums[i];
                j++;
            }
        }
    }
    return j;

提交结果
在这里插入图片描述
解题思路

  1. 先判断数组内容是否为空,若为空则return 0,否则继续执行程序;
  2. 利用一个for循环和if语句判断数组元素是否和给定值相同,若相同则依次用下一元素覆盖该元素;
  3. 程序结束。

C++代码(法二):

int a,b,c=0,i,j;
    if(nums.size()==0)
    {
        return 0;
    }
    else
    {
        for(i=0;i<nums.size()-c;i++)
        {
            if(nums[i]==val)
            {
                c=c+1;
                b=i;
                for(j=b+1;j<nums.size();j++)
                {
                    nums[b]=nums[j];
                    ++b;
                }
                i--;
            }
        }
    }
    return nums.size()-c;

提交结果
在这里插入图片描述
解题思路

  1. 先判断数组内容是否为空,若为空则return 0,否则继续执行程序;
  2. 利用for循环和if语句判断数组元素是否等于给定值,若相等则用另一for循环使得该元素之后元素被依次覆盖,最后输出不等于给定值的所有元素;
  3. 程序结束。
发布了47 篇原创文章 · 获赞 0 · 访问量 757

猜你喜欢

转载自blog.csdn.net/ly521_/article/details/104466974