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;
}
相关推荐
满怀冰雪3 小时前
第14篇-队列与单调队列-解决窗口最值问题的关键结构
java·算法
QiLinkOS3 小时前
极客精神与商业思维的融合实践(3)
c语言·c++·人工智能·算法·开源协议
bIo7lyA8v3 小时前
算法设计中的代价函数优化与约束求解的技术8
算法
暖阳华笺3 小时前
【数据结构与算法】哈希专题
数据结构·c++·算法·leetcode·哈希算法
ceclar1233 小时前
C#字节流与字符流
算法·c#·.net
大白话_NOI3 小时前
【洛谷 P1024 】[NOIP2001 提高组] 一元三次方程求解 - 详细分析与C++实现
c++·算法
Matthew_zhu_3 小时前
P3374 【模板】树状数组 1 题解
算法
随意起个昵称3 小时前
区间dp-进阶题目1(进阶合并)
c++·算法·动态规划
伶俜663 小时前
鸿蒙原生应用实战(四)ArkUI 语音变声器:录音 + 4 种音效 + 音调变换算法
算法·华为·harmonyos
AKA__Zas3 小时前
芝士算法(滑动窗口片 2.0)
java·算法·leetcode·学习方法