class Solution {
public int removeElement(int[] nums, int val) {
int fid=0,sid=0;
while(fid < nums.length){
while(fid < nums.length && nums[fid] == val)
{
fid++;
}
if(fid == nums.length)
return sid;
nums[sid] = nums[fid];
fid++;
sid++;
}
return sid;
//上面代码思想上是对的。。但是写的太丑了!
int sid = 0,fid = 0;
for(;fid<nums.length;fid++){
if(nums[fid] != val){//上面我写的就是等于val的情况,但是等于的时候
//等于的时候就是fid++罢了,for循环就是fid++,所以我写了不等于val的情况
nums[sid] = nums[fid];
sid++;
}
}
return sid;
}
}
双指针,挺好想的,快指针用来跳过指定元素,慢指针用来覆盖