LeetCode27——移除元素
自己的解法与官方的解法一致:
时间复杂度O(N)
空间复杂度O(1)
package keepcoding.leetcode.leetcode27;
public class Result01 {
public static void main(String[] args) {
int[] arr = {3,2,2,3};
removeElement(arr,2);
printArray(arr);
}
public static int removeElement(int[] arr,int val){
//双指针
int index = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i]!=val){
//将不删除的元素通过重新赋值实现前移
arr[index] = arr[i];
index++;
}
}
System.out.println(index);
return index;
}
public static void printArray(int[] arr){
//打印数组
for (int i = 0; i < arr.length; i++) {
if (i==0){
if(arr.length==1){
System.out.println("["+arr[0]+"]");
}else {
System.out.print("["+arr[i]);
}
}else if(i==arr.length-1){
System.out.println(","+arr[i]+"]");
}else {
System.out.print(","+arr[i]);
}
}
}
}