移除元素(图解)"/>
【leetcode】27. 原地移除元素(图解)
目录
- 1. 思路(图解)
- 2. 代码
题目链接:leetcode 27. 移除元素
题目描述:
需要注意的是,返回的是新数组长度,但是输出的是数组元素。
1. 思路(图解)
思路一:空间换时间(不满足题目要求),创建一个数组,不等于val的值放入这个数组;
思路二:快慢指针
- dst和src对应下标,初始为0;
- nums[src]等于val:src自增,目的是找到不等于val的值;
- nums[src]不等于val:将nums[dst]赋值nums[src],dst和src自增;
- 返回dst就是新数组的长度,同时0-dst间没有等于val的值。
2. 代码
int removeElement(int* nums, int numsSize, int val) {int dst = 0;int src = 0;while (src < numsSize) {if (nums[src] != val) {nums[dst] = nums[src];++dst;++src;}else {++src;}}return dst;
}
更多推荐
【leetcode】27. 原地移除元素(图解)
发布评论