删除数组重复元素

删除元素

http://www.nowcoder.com/questionTerminal/1e1b7d86039e4427b4b6f7cbb856c301

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

这是借鉴的答案

public class Solution {
    public int removeElement(int[] A, int elem) {
        String s = null;
        StringBuffer str = new StringBuffer();

        for (int i = 0; i < A.length; i++) {
            if (elem == A[i]) {
                continue;
            } else {
                str.append(A[i] + " ");
            }
        }
        s = str.toString();
        String[] s1 = s.split(" ");
        return s1.length;
    }
}

以上是自己的答案,不知道是为什么,因为输出的答案是一样的,只是比较繁琐。
借鉴的答案是利用j计数器,如果元素不等于想要删除的数,那么j也一起跟着i向后加,当元素等于elem时,那么j不会加,而i是会继续自加的,这样就很好的跳过了想要删除的元素,把后面不需要删除的元素赋值到这个位置,返回j,也就是数组长度,我不知道为什么别人的答案可以,我的不可以,不过也学到了更简便的方法

全部评论

相关推荐

昨天 18:10
门头沟学院 Java
点赞 评论 收藏
分享
程序员小白条:找的太晚,别人都是大三实习,然后大四秋招春招的,你大四下了才去实习,晚1年
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务