题目描述
Java解决办法
class Solution {
public int removeElement(int[] nums, int val) {
//利用首尾双指针法可以顺利解决
int start = 0;
int count = 0;
int len = nums.length;
int end = len - 1;
if((len == 1 && nums[0] == val) || len == 0)
{
return 0;
}
while(start < end)
{
while(start < end && nums[start] != val)
{
start++;
}
while(start < end && nums[end] == val)
{
count++;
end--;
}
if(start < end && nums[start] == val)
{
count++;
nums[start++] = nums[end--];
}
}
if((start >= end && nums[start] == val))
{
return start;
}
return len - count;
}
}
运行结果: