大家好,欢迎来阅读子豪的博客(LeetCode刷题篇)
大家有什么宝贵的意见或建议可以在留言区留言
如果你喜欢我的博客,欢迎 素质三连 点赞 关注 收藏
我的码云仓库:补集王子 (YZH_skr) - Gitee.com
27. 移除元素 - 力扣(LeetCode) (leetcode-cn.com)
https://leetcode-cn.com/problems/remove-element/
题意
1.删除 Val 2.返回新长度
解题代码
int removeElement(int* nums, int numsSize, int val) { int NewSize = 0; int* cur = nums; while (numsSize) { if (*cur != val) { *nums = *cur; cur++; *nums++; NewSize++; } else { cur++; } numsSize--; } return NewSize = 0; }
思路
假如 Val 为 2
1.遇到 Val值
就把cur往后移动一格
然后把NewSize自加一
2.没遇到 Val值
把cur指向的值赋给nums所指向的空间
然后两个都往后挪一格
注意
1.这里题目里的numsSize是元素个数(长度),不是数组内存大小
2.测试用例输入的是你*nums指向的数组 所以要注意指针的位置
3.要多动手画图不能干靠想象做题