【快乐手撕LeetCode题解系列】——移除元素

简介: 哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【快乐手撕LeetCode题解系列】——移除元素~ 都是精华内容,可不要错过哟!!!😍😍😍

微信图片_20230427214238.gif

😎博客昵称:博客小梦

😊最喜欢的座右铭:全神贯注的上吧!!!

😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘

微信图片_20230427160707.gif


前言🙌



    哈喽各位友友们😊,我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【快乐手撕LeetCode题解系列】——移除元素~ 都是精华内容,可不要错过哟!!!😍😍😍


移除元素🙌


题目描述:


微信图片_20230428192908.png

微信图片_20230428193347.png

微信图片_20230428193352.png


解题思路分析 😍


(1)画图分析:

微信图片_20230428193450.png


(2)文字讲解


第一种思路,就是覆盖删除。遍历这个数组,找到每一个val值,然后移动后面的元素进行覆盖删除。这种算法的时间复杂度是O(n^2),空间复杂度为O(1)。在个题目跑不过去,太慢了


第二种思路是,新建立一个数组,将不是val的值存放到新的数组当中。然后放回新数组的元素个数即可。时间复杂度是O(n),空间复杂度是O(n)。


第三种思路,利用双指针(双下标)。当src指向的数组元素等于val时,只让src++即可。如果不等于val,则让src的值赋值给dst位置的元素,然后让dst和src都往后走一步即可。这个算法的时间复杂度是O(n),空间复杂度是O(1)


解题思路一 :源代码分享:😍


int removeElement(int* nums, int numsSize, int val)
{
    int src = 0;
    int dst = 0;
    while (src < numsSize)
    {
        if (nums[src] == val)
        {
            src++;
        }
        else
        {
            nums[dst++] = nums[src++];
        }
    }
    return dst;
}


程序输出结果验证:😊


微信图片_20230428193544.png


总结撒花💞


   本篇文章旨在分享【快乐手撕LeetCode题解系列】——移除元素。希望大家通过阅读此文有所收获!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘

相关文章
|
18天前
|
算法
【经典LeetCode算法题目专栏分类】【第10期】排序问题、股票问题与TOP K问题:翻转对、买卖股票最佳时机、数组中第K个最大/最小元素
【经典LeetCode算法题目专栏分类】【第10期】排序问题、股票问题与TOP K问题:翻转对、买卖股票最佳时机、数组中第K个最大/最小元素
|
26天前
|
算法 搜索推荐 Java
【经典算法】LeetCode 215. 数组中的第K个最大元素(Java/C/Python3实现含注释说明,Medium)
【经典算法】LeetCode 215. 数组中的第K个最大元素(Java/C/Python3实现含注释说明,Medium)
16 3
|
4天前
|
存储 算法 Java
力扣经典150题第四十五题:存在重复元素 II
力扣经典150题第四十五题:存在重复元素 II
5 0
|
4天前
|
存储 算法
力扣经典150题第四十四题:快乐数
力扣经典150题第四十四题:快乐数
5 0
|
12天前
|
索引
leetcode题解:27.移除元素
leetcode题解:27.移除元素
13 0
|
2月前
题目----力扣--移除链表元素
题目----力扣--移除链表元素
24 1
|
2月前
|
存储 算法 索引
【力扣刷题】只出现一次的数字、多数元素、环形链表 II、两数相加
【力扣刷题】只出现一次的数字、多数元素、环形链表 II、两数相加
32 1
|
18天前
|
算法 容器
【LeetCode刷题】快乐数、盛水最多的容器
【LeetCode刷题】快乐数、盛水最多的容器
|
22天前
|
存储 SQL 算法
LeetCode 83题:删除排序链表中的重复元素【面试】
LeetCode 83题:删除排序链表中的重复元素【面试】
|
22天前
|
存储 SQL 算法
LeetCode 题目 82:删除排序链表中的重复元素 II
LeetCode 题目 82:删除排序链表中的重复元素 II