leetcode每日刷题之数组(四)27.移除元素(一个让你说卧槽的题解)
程序员文章站
2024-03-15 09:17:29
...
前言
这个题目给我第一想法就是用双指针,这个 思路也是在纸上画的时候突然想到的,感觉还不错,分享给大家。提前两天完成了这个月的目标,开心。
27.移除元素
题目描述
做题思路
中间步骤省略直到最后
思路就是,遍历数组,两个指针一起移动,当发现需要删除的值时,绿指针移动,红指针不动,然后然后再一起移动直到最后。
题目代码
class Solution {
public int removeElement(int[] nums, int val) {
if (nums == null) {
return 0;
}
//定义接收值的索引
int j = 0;
//遍历执行
for (int i = 0; i < nums.length; i++) {
//不是要删除的值时,数组不发生改变
if (nums[i] != val) {
nums[j] = nums[i];
j++;
}
//找到需要删除的值时,i移动,j不动,就实现了删除
//继续往下执行,找到不需要删除的值,j继续向前移动
}
return j;
}
}