Given an array and a value, remove all instances of that > value in place and return the new length.
如果不是要删除的节点,则正常覆盖。如果是,就有一下个节点将其覆盖(用下一个节点来填充要删除节点的位置)。
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
在一个长度为n的数组中删除所有值为elem的节点,并返回新数组的长度。
要求:所有的操作都只能发生在A数组本身,而不能借用新的数组。在新书组
长度以外你留下什么无所谓。
public static int evitElement(int A[], int n, int elem) {
int j = 0;
for(int i = 0; i < n; i++) {
if(A[i] == elem) {
continue;
}
A[j] = A[i + 1];
j++;
}
return j;
}
如果不是要删除的节点,则正常覆盖。如果是,就有一下个节点将其覆盖(用下一个节点来填充要删除节点的位置)。
就像有一列盘子,上面编号乐,现在要把非某个编号的盘子全部一道另一个地方去。
显然在没有遇到这个编号时,我们正常的搬盘子;当要到这个编号时我们就越过它。