https://oj.leetcode.com/problems/remove-element/
移除数组中等于element的元素,不开辟新空间,O(n).
这个跟有序数组删除重复元素的思路是一样的。
public class Solution {
public int removeElement(int[] A, int elem) {
if(A==null||A.length==0)return 0;
int len=A.length;
int index=0;
for(int i=0;i<len;i++){
if(A[i]!=elem){
A[index++]=A[i];
}
}
return index;
}
}
同时有大牛的思路是这样的:
public class Solution {
public int removeElement(int[] A, int elem) {
if(A==null||A.length==0)return 0;
int len=A.length;
for(int i=0;i<len;i++){
if(A[i]==elem){
A[i--]=A[--len];
}
}
return len;
}
}