删除数组重复元素

删除元素

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,也就是数组长度,我不知道为什么别人的答案可以,我的不可以,不过也学到了更简便的方法

全部评论

相关推荐

喜欢疯狂星期四的猫头鹰在研究求职打法:短作业优先
点赞 评论 收藏
分享
03-17 19:21
门头沟学院 Java
面试官_我太想进步了:正常企查查显示的员工一般比设计的少
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务