不使用jdk的集合類,經過遍歷數組獲得,由於數組是有序的,在遍歷數組的時候,統計整數是否重複出現,若是沒有重複出現計數加一,若重複出現則是計數減一。java
java解決方法,時間複雜度O(n)。數組
public int countNoRepeatNum(int[] arr, int n) { if(arr == null || n <= 0) return -1; boolean repeat = false; int count = 1; int num = arr[0]; for(int i=1;i<n;i++) { if(!repeat) { if(arr[i] != num) { num = arr[i]; count++; } else { repeat = true; count--; } } else { if(arr[i] != num) { count++; num = arr[i]; repeat = false; } } } return count; }