顺序表算法 - 移除元素

. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/remove-element/description/思路:

代码:

cpp 复制代码
// numsSize表示数组的长度
int removeElement(int* nums, int numsSize, int val) {
    int src = 0;
    int dest = 0;
    //src小于数组的时候进入循环
    while (src < numsSize) 
    {
        //nums[src]是否等于vcal
        if (nums[src] == val) 
        {
            src++;
        } 
        else
        {
            //先赋值,后自增
            nums[dest++] = nums[src++];
        }
    }
    //此时det指向的位置就是要返回的有效个数
    return dest;
}

运行结果:

从上面的代码我们可以看出不管nums[src]是否等于val,dest都要++,那么我们的代码就可以优化一下。

cpp 复制代码
// numsSize表示数组的长度
int removeElement(int* nums, int numsSize, int val) {
    int src = 0;
    int dest = 0;
    //src小于数组的时候进入循环
    while (src < numsSize) 
    {
        //nums[src]是否等于vcal
        if (nums[src] != val) 
        {
            nums[dest] = nums[src];
            dest++;
        } 
        src++;
    }
    //此时det指向的位置就是要返回的有效个数
    return dest;
}
相关推荐
52Hz11812 小时前
二叉树理论、力扣94.二叉树的中序遍历、104.二叉树的最大深度、226.反转二叉树、101.对称二叉树
python·算法·leetcode
Shirley~~13 小时前
leetcode移除元素
javascript·数据结构·算法
普贤莲花13 小时前
新生2026年1月20日---星期二(大寒)
程序人生·算法·leetcode
高洁0113 小时前
产品数字孪生体与数字样机及数字化交付的应用
人工智能·深度学习·算法·数据挖掘·transformer
2501_9415079413 小时前
通信基站天线设备检测与分类YOLO11-LSCD-LQE算法实现与优化
算法·分类·数据挖掘
wen__xvn13 小时前
基础数据结构第08天:栈(实战篇)
数据结构·c++·算法
玄鱼殇13 小时前
前端排序算法
算法·排序算法
tqs_1234513 小时前
倒排索引数据结构
java·前端·算法
a程序小傲13 小时前
听说前端又死了?
开发语言·前端·mysql·算法·postgresql·深度优先
副露のmagic13 小时前
python基础复健
python·算法