简介
题目链接:https://leetcode.cn/problems/remove-element/description/
解决方式:数组 + 双指针
这是作者学习众多大神的思路进行解题的步骤,很推荐大家解题的时候去看看题解里面大佬们的思路、想法!
推荐查看宫水三叶大佬所作题解。
双指针
解题思路:双指针,与 26 题类似,不过此处是过滤掉与指定数字相同的元素。即,一个指针迭代整个数组,找到不同的元素就放在数组前面,否则继续迭代。
java
class Solution {
public int removeElement(int[] nums, int val) {
// 边界处理
if(nums.length == 0 || nums == null){
return 0;
}
// 双指针
// p 指针存放数组中与指定值不同的数字序列的最后一位
int p = 0;
// 此处为增强 for 循环,相当于另一个指针,迭代整个数组
for(int num : nums){
if (num != val) nums[p++] = num;
}
// 返回结果
return p;
}
}