class Solution {
public int removeElement(int[] nums, int val) {
int len = nums.length;
int total = len;
for(int i = 0;i<total;i++){
if(nums[i]==val){
for(int j=i;j<total-1;j++){
nums[j]=nums[j+1];
}
total--;
i--;
}
}
return total;
}
}
以空间复杂度O(1)删除某数组元素需要注意事项
1、对于暴力删除数组元素,时间复杂度为O(n2),同时需要注意以下情况
①、由于删除元素数组长度是变化的,所以遍历数组时需要注意数组长度,如第一层循环需要是i<total,举例来说如3 2 2 3需要删除的元素是3
那第一次删除后剩下 2 2 3 3,此时只需要对前三个元素继续筛选即可。