题目:
算法分析:
- 优化关键:题目不需要关注除前k元素以外的部分
- 左指针等于对应值,复制右指针替代,右指针增加(左指针不变可以继续判断复制的右指针元素是否符合条件)
- 否则左指针增加
算法图解:
代码:
class Solution {
public int removeElement(int[] nums, int val) {
int right = nums.length -1;
int left = 0;
while(left <= right){
if(nums[left] == val){
nums[left] = nums[right];
right--;
}else{
left++;
}
}
return left;
}
}