题目:
算法思想 :定义两个下标分别从数组头尾开始,分别叫头数据和尾数据,头数据与目标值相等的时候把尾部的一个非目标数据替换掉,同时数组长度减一,替换的时候先要找到非目标值的尾数据,这里要判断处理一下
代码:
public int removeElement(int[] nums, int val) {
if(nums.length == 0) {
return 0;
}
int length = nums.length;
int begin = 0,end = length - 1;
while(begin <= end){
if(nums[begin] != val){
begin++;
}
else{
if(nums[end] != val){
nums[begin] = nums[end];
begin++;
end--;
length--;
}
else{
end--;
length--;
}
}
}
return length;
}