27. 移除元素
解题思路
1.用于双指针技巧
2.快慢指针在遇到val值,之前一直向后移动
3.遇到val值,慢指针停止,快指针依然向后移动,直到遇到不是val的值
4.此时交换这两个值
5.直到快指针到达数组的末尾,慢指针处于的位置,就是新数组的长度
解题遇到的问题
1.用双指针的思想去解题
##解法1
class Solution {
public int removeElement(int[] nums, int val) {
int slow = 0, sfast = 0;
while (sfast < nums.length) {
if (nums[sfast] == val) {
sfast++;
} else {
nums[slow] = nums[sfast];
sfast++;
slow++;
}
}
return slow;
}
}
网友评论