博客主页:PH_modest的博客主页
当前专栏:每日一题
其他专栏:
每日反刍
C++跬步积累
C语言跬步积累
座右铭:广积粮,缓称王!
最初认识到CSDN是在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