题目
题解
注:第二种思路实际上是覆盖。
代码
public class code27 {
public static int removeElement(int[] nums, int val) {
// Arrays.sort(nums);
int i = 0;
for (int j = 0; j < nums.length; j++) {
if (nums[j] != val) {
nums[i] = nums[j];
i++;
}
}
return i;
}
// public static int removeElement(int[] nums, int val) {
// int ans = nums.length;
// for (int i = 0; i < ans;) {
// if (nums[i] == val) {
// nums[i] = nums[ans - 1];
// ans--;
// } else {
// i++;
// }
// }
// return ans;
// }
public static void main(String[] args) {
int nums[] = { 0, 1, 2, 2, 3, 0, 4, 2 };
int val = 2;
int len = removeElement(nums, val);
for (int i = 0; i < len; i++) {
System.out.print(nums[i] + " ");
}
System.out.println();
}
}