3_27.移除元素
题目描述:

解题思路:
- 第一思路:
看到这个题目,原地移除的算法,并且要求O(1)的额外空间,已经想到了双指针。于是就一直往这个思路上靠。 - 题解中的双指针优化:
![image]()
![image]()
代码:
双指针
class Solution {
public int removeElement(int[] nums, int val) {
int len = nums.length;
int slow = -1;
int fast = 0;
while(fast < len){
if (nums[fast] != val){
slow ++;
nums[slow] = nums[fast];
}
fast++;
}
return slow+1;
}
}
双指针优化
class Solution {
public int removeElement(int[] nums, int val) {
int left = 0;
int right = nums.length;
while (left < right) {
if (nums[left] == val) {
nums[left] = nums[right - 1];
right--;
} else {
left++;
}
}
return left;
}
}
滴水穿石、燕子衔泥,点点滴滴都是添补



浙公网安备 33010602011771号