LeetCode | 27. 移除元素

LeetCode | 27. 移除元素

OJ链接

  • 这道题有一个方法是要删除的数据直接后一个数据挪动到前一个数据,这个方法好不好?
  • 最坏的情况下时间复杂度是O(N^2)

还有一个方法

  • 定义一个src定义一个dst,原地直接进行赋值,不进行挪动,不懂的话可以看下图

代码如下:

c 复制代码
int removeElement(int* nums, int numsSize, int val){
    int src = 0,dst = 0;

    while(src<numsSize)
    {
        if(val != nums[src])
        {
            nums[dst++] = nums[src++];
        }
        else
        {
            src++;
        }
    }
    return dst;
}
相关推荐
AI科技星3 分钟前
宇宙的像素:真空中一点如何编码无限星光
数据结构·人工智能·算法·机器学习·重构
程芯带你刷C语言简单算法题6 分钟前
Day37~求组合数
c语言·开发语言·学习·算法·c
程序员-周李斌9 分钟前
transmittable-thread-local[线程池跨线程值传递]
java·开发语言·算法·散列表
Flash.kkl11 分钟前
优先算法专题十七——多源BFS
算法·宽度优先
Yzzz-F12 分钟前
牛客小白月赛 D[差分] E [暴力枚举] F[] g[二阶差分]
算法
liliangcsdn14 分钟前
DDPM前向加噪过程详细推导
人工智能·算法·机器学习
没有bug.的程序员31 分钟前
Sentinel 流控原理深度解析:构建高可用微服务的底层架构
java·算法·微服务·云原生·架构·sentinel·负载均衡
深圳佛手32 分钟前
IVFFlat 与 HNSW 算法介绍与对比
人工智能·算法·机器学习
Dream it possible!36 分钟前
LeetCode 面试经典 150_分治_将有序数组转换为二叉搜索树(105_108_C++_简单)(递归)
c++·leetcode·面试
Q741_14736 分钟前
C++ 栈 模拟 力扣 227. 基本计算器 II 题解 每日一题
c++·算法·leetcode·模拟