【每日一题】——移除元素

作者通过在优快云上写博客记录学习历程,特别是参与每日一题的挑战,提升了C++编程技能。写博客不仅是分享知识,也是自我能力的锻炼和巩固。目前的成就包括实现通讯录功能,并计划与同学合作开发管理系统,目标是增强编码能力并追求职业发展。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

🌏博客主页:PH_modest的博客主页
🚩当前专栏:每日一题
💌其他专栏:
🔴 每日反刍
🟡 C++跬步积累
🟢 C语言跬步积累
🌈座右铭:广积粮,缓称王!

机缘

最初认识到优快云是在b站视频里看到的,但当时还并没有成为博主的想法,后来遇到了鹏哥,在他的建议下我开始尝试着写博客记录我的学习历程。


收获

这过程中遇到了许多志同道合的伙伴,从他们的文章中我也学到了很多,也正是看到他们的努力使我也不敢懈怠。写博客不仅仅是为了分享知识,更是自我能力的提升,可以是自己对这部分知识理解更加透彻,也方便自己日后的复习查找。


日常

目前写博客已经成为了我生活中的一部分,通过写博客来巩固知识点


成就

目前我写过的最好的代码就是通讯录的实现,由于代码过长就不展示了,之后有时间会单独写一篇博客进行讲解。


憧憬

目前的目标是和同学一起写一个管理系统,坚持每天写题目,提升自己的代码能力,键盘敲烂,年薪30W,让我们一起努力吧!

最后就以题目来结尾吧

题目描述

在这里插入图片描述

题目链接:27 . 移除元素 - 力扣(LeetCode)

思路分析

由于题目要求删除数组中等于 val 的元素,因此输出数组的长度一定小于等于输入数组的长度,我们可以把输出的数组直接写在输入数组上。可以使用快慢指针的思想来解题,i就可以看成是那个快指针,指向当前需要处理的元素,j可以看成慢指针指向下一个将要赋值的位置。
整个过程保持不变的性质是:区间 [0,j)之间的元素都不等于val,并且j的值就是输出数组的长度
在这里插入图片描述

代码展示

//时间复杂度:O(N)
//空间复杂度:O(1)
int removeElement(int* nums, int numsSize, int val)
{
    int i=0;
    int j=0;
    for(i=0;i<numsSize;i++)
    {
        if(*(nums+i)!=val)
        {
            nums[j++]=nums[i];
        }
    }
    return j;
}

最后的最后:

每日一题系列旨在养成刷题的习惯,所以对代码的解释并不会特别详细,但足够引导大家写出来,选的题目都不会特别难,但也不是特别简单,比较考验大家的基础和应用能力,我希望能够将这个系列一直写下去,也希望大家能够和我一起坚持每天写代码。

在这里送大家一句话:广积粮,缓称王!

Tips

  1. 您发布的文章将会展示至 里程碑专区 ,您也可以在 专区 内查看其他创作者的纪念日文章
  2. 优质的纪念文章将会获得神秘打赏哦
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PH_modest

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值