一、题目
二、代码
暴力算法
class Solution {
public int removeElement(int[] nums, int val) {
if(nums.length == 0){
return 0;
}
int len = nums.length;
int i = 1;
while(i < len){
if(nums[i - 1] == val){
for(int j = i; j < len; j++){
nums[j -1] = nums[j];
}
len--;
}else{
i++;
}
}
//数组最后一个元素为所删除值的情况
if(nums[len -1] == val){
len--;
}
return len;
}
}
可尝试使用快慢指针解法进行优化
class Solution {
public int removeElement(int[] nums, int val) {
int i = 0;
for(int j = 0; j < nums.length; j++){
if(nums[j] != val){
nums[i] = nums[j];
i++;
}
}
return i;
}
}