一次性通过的,比较顺利,从读题到编写到检查到通过,14分50秒,我在不断进步中,相信经过一段时间联系,这种题可以一眼就写出来,不超过5分钟。
这道题应该说方法跟 Remove Duplicates from sorted Array挺类似的
My Solution:
1 public class Solution {
2 public int removeElement(int[] A, int elem) {
3 int count = 0;
4 for(int i=0; i<A.length; i++){
5 if(A[i] != elem){
6 A[count] = A[i];
7 count++;
8 }
9 }
10 return count;
11 }
12 }
再贴个另外两个人的solution,以便对照参考,比较优劣:
Solution 1: 这个想法有点曲折
1 public class Solution {
2 public int removeElement(int[] A, int elem) {
3 // Start typing your Java solution below
4 // DO NOT write main() function
5 int i=0, j=A.length-1;
6
7 while(i<=j){
8 if(A[i]==elem)
9 swap(A,i,j--);
10 else
11 i++;
12 }
13 return j+1;
14 }
15
16 public void swap(int[] A,int i, int j){
17 int temp = A[i];
18 A[i] = A[j];
19 A[j] = temp;
20 }
21 }
Solution 2: 跟我的想法一致
1 public class RemoveElement {
2 public int removeElement(int[] A, int elem) {
3 // Start typing your Java solution below
4 // DO NOT write main() function
5 if (A.length == 0) {
6 return 0;
7 }
8 int counter = 0;
9 for (int i = 0; i < A.length; i++) {
10 if (A[i] != elem) {
11 A[counter] = A[i];
12 counter++;
13 }
14 }
15 return counter;
16
17 }
18 }
Leetcode: Remove Elements,布布扣,bubuko.com
时间: 2024-10-12 22:31:18