1 /** 2 * 主要思想是通过数组来保存每个字符的出现次数,数组访问O(1),所以总时间复杂度可以保持O(n),通过两次遍历可以解决问题 3 * @param ch 4 * @return 5 */ 6 7 public static char getFirstNotRepeatChar(char[] charArray){ 8 if(charArray == null) 9 return 0; 10 11 char result = 0; 12 int[] table = new int[256]; 13 for(int i = 0; i < table.length ; i++) 14 table[i] = 0; 15 for(char temp : charArray){ 16 table[temp]++; 17 } 18 for(char temp : charArray){ 19 if(table[temp] == 1){ 20 result = (char) temp; 21 break; 22 } 23 } 24 return result; 25 }