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