题目描述
这道题的要求和26题很像,所以第一反应就是采用双指针的写法
思路是没问题的,就是在写的时候有些语句冗余
public class DeleteEquals {
public static int removeElement(int[] nums, int val) {
// if (nums.length == 0){
// return 0;
// }
// if (nums.length == 1 && nums[0] == val){
// return 0;
// }
int p = 0;
int q = nums.length - 1;
while (p<=q){
if (nums[q] == val){
--q;
}else {
if (nums[p] == val){
nums[p] = nums[q];
--q;
}
++p;
}
}
return p;
}
public static void main(String[] args) {
int[] nums = {};
int val = 3;
int i = removeElement(nums, val);
System.out.println(i);
}
}