public class Solution {
public int removeElement(int[] A, int elem) {
int len = A.length;
for(int i = 0; i < len;){
if(A[i] == elem){
A[len - 1] ^= A[i];
A[i] ^= A[len - 1];
A[len - 1] ^= A[i];
len--;
}
else{
++i;
}
}
return len;
}
}
这种交换的方式比下面这种更快一些
但是复杂度是一样的,时间不同可能是测试数据引起的
public class Solution {
public int removeElement(int[] A, int elem) {
int len = A.length;
int index = 0;
for(int i = 0; i < len; ++i){
if(A[i] != elem){
A[index++] = A[i];
}
}
return index;
}
}
本文介绍了两种在Java中从数组中移除指定元素的方法。一种是通过交换元素位置并缩短数组长度来实现,另一种则是遍历数组并将非目标元素复制到数组前部。文章对比了这两种方法的时间效率。
1697

被折叠的 条评论
为什么被折叠?



