顺序表算法 - 移除元素

. - 力扣(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;
}

运行结果:

从上面的代码我们可以看出不管numssrc是否等于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;
}
相关推荐
KaMeidebaby5 小时前
卡梅德生物技术快报|PD1 单克隆抗体定制配套 N 糖全谱质控开发
前端·人工智能·算法·数据挖掘·数据分析
8Qi86 小时前
LeetCode 235. 二叉搜索树的最近公共祖先(LCA)
算法·leetcode·二叉树·递归·二叉搜索树·lca·迭代
bIo7lyA8v6 小时前
算法稳定性分析中的随机扰动建模的技术8
算法
是阿建吖!6 小时前
【Linux】信号
android·linux·c语言·c++
sugar__salt6 小时前
从栈队列数据结构到JS原型面向对象全解
前端·javascript·数据结构
科研online6 小时前
基于多源数据和XGBoost-SHAP分析中国大陆绿地碳汇空间变异影响因素的非线性相关性与尺度差异
算法·学习方法
Cthy_hy7 小时前
拓扑排序超详解:原理 + Kahn 贪心算法
python·算法·贪心算法
三品吉他手会点灯7 小时前
C语言学习笔记 - 43.运算符与表达式 - 运算符1 - 运算符的分类和简单介绍
c语言·笔记·学习·算法
VkN2X2X4b7 小时前
算法复杂度的实验验证与误差分析的技术8
算法
其利天下技术8 小时前
风扇灯无刷电机自适应算法实战指南
算法·cocos2d·无刷电机自适应算法·bldc驱动自适应算法·其利无刷电机驱动算法