@@ -55,6 +55,10 @@ public static void main(String[] args) {
55
55
System .out .println (element .removeElement (new int []{3 , 2 , 2 , 3 }, 3 ));
56
56
System .out .println (element .removeElement (new int []{0 , 1 , 2 , 2 , 3 , 0 , 4 , 2 }, 2 ));
57
57
System .out .println (element .removeElement (new int []{3 , 1 , 0 }, 11 ));
58
+ //解法二
59
+ System .out .println (element .removeElement2 (new int []{3 , 2 , 2 , 3 }, 3 ));
60
+ System .out .println (element .removeElement2 (new int []{0 , 1 , 2 , 2 , 3 , 0 , 4 , 2 }, 2 ));
61
+ System .out .println (element .removeElement2 (new int []{3 , 1 , 0 }, 11 ));
58
62
}
59
63
60
64
/**
@@ -63,6 +67,8 @@ public static void main(String[] args) {
63
67
* 1、先对数组进行排序
64
68
* 2、找到==val的起始位置和终止位置
65
69
* 3、将终止位置后的数字前移至起始位置
70
+ * <p>
71
+ * 更新一个更简洁的写法 {@link _27_removeElement#removeElement2(int[], int)}
66
72
*
67
73
* @param nums
68
74
* @param val
@@ -97,4 +103,26 @@ public int removeElement(int[] nums, int val) {
97
103
return len - ei + si - 2 ;
98
104
}
99
105
}
106
+
107
+ /**
108
+ * 解法二,写法更简洁
109
+ *
110
+ * @param nums
111
+ * @param val
112
+ * @return
113
+ */
114
+ public int removeElement2 (int [] nums , int val ) {
115
+
116
+ int retLen = 0 ;
117
+ int insertIndex = 0 ;
118
+ for (int i = 0 ; i < nums .length ; i ++) {
119
+ if (nums [i ] == val ) {
120
+ continue ;
121
+ }
122
+ nums [insertIndex ++] = nums [i ];
123
+ retLen ++;
124
+ }
125
+
126
+ return retLen ;
127
+ }
100
128
}
0 commit comments