
- 使用双指针,定义一个指针fast和slow 初始都为0
- 当fast != val 的时候,将fast赋值给slow,if符合条件的时候 slow++
- **if条件外fast++ **
//使用快慢指针
class Solution {
public int removeElement(int[] nums, int val) {
int fast = 0;
int slow = 0;
int len = nums.length;
//当快指针的索引比长度小的时候
while(fast < len){
if(nums[fast] != val){
nums[slow] = nums[fast];
slow++;
}
fast++;
}
return slow;
}
}
该博客介绍了一种使用快慢指针的方法来从整数数组中移除指定值的元素。通过设置两个指针,fast 和 slow,当 fast 指针遇到不同值时,将其复制到 slow 指针位置并移动 slow,从而实现原地移除。该算法在遍历过程中保持了有效元素的连续性,并返回新的有效数组长度。
1754

被折叠的 条评论
为什么被折叠?



