删除数组中的某元素

给一个数组A,删除其中的元素elem

数组怎么删除其中的元素呢?

1、可以新建一个数组,不同于elem的元素就存到新数组中去,但是空间复杂度就是o(N),时间复杂度o(N)

2、能不能使得空间复杂度为0呢?和删除数组中重复的元素类似,直接在数组上移动,把后面的元素覆盖到前面的元素。

public class Solution {
    public int removeElement(int[] A, int elem) {
        int last = 0;
        for (int i = 0; i < A.length; i++) {
            if (A[i] != elem) {
               A[last++] = A[i];
            }
        }
        return last;
    }
}

Tagged on: , ,

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>