2016-05-24 118 views
1

我需要編碼問題的幫助。我希望找到答案的一些提示,但不是答案本身。計算非重複整數

樣品輸入看起來像這樣3112

樣品輸出爲2,因爲整數不重複。

這裏的代碼

public static int lonelyInteger(int[] arr) 
{ 

    need to code this 

} 


public static void main(String[] args) throws IOException 
{ 
    Scanner in = new Scanner(System.in); 
    final String fileName = System.getenv("OUTPUT_PATH"); 
    BufferedWriter bw = new BufferedWriter(new FileWriter(fileName)); 
    int res; 

    int _arr_size = Integer.parseInt(in.nextLine()); 
    int[] _arr = new int[_arr_size]; 
    int _arr_item; 
    for(int _arr_i = 0; _arr_i < _arr_size; _arr_i++) 
    { 
     _arr_item = Integer.parseInt(in.nextLine()); 
     _arr[_arr_i] = _arr_item; 
    } 

    res = loneyInteger(_arr); 
    bw.write(String.valueOf(res)); 
    bw.newLine(); 

    bw.close(); 
} 
+1

你能給更多的樣品測試案例?你給的那個對我來說沒有意義。我不知道你是怎麼得到的2. – 4castle

+1

@ 4castle有兩個不同的整數不重複自己(3和2)。 – Gendarme

+0

只是一個概述:遍歷每個數字。對於每個數字,看看它是否再次出現在數字中。如果不是,則將其中一個添加到索引計數器。 – Dando18

回答

0

寫一個循環,從開始到arr末迭代,每個指標在檢查前面的元素,背後它包含不同的值。如果該值與上一個和下一個元素不同,請向計數器添加一個。在訪問這些索引之前,請確保檢查前面或後面的索引不等於-1arr.length

劇透:

int count = 0; for (int i = 0; i < arr.length; i++) if (i-1 >= 0 && arr[i] == arr[i-1] || i+1 < arr.length && arr[i] == arr[i+1]) continue; else count++; return count;

0

您可以爲反覆自己,而你讀不懂他們的整數計數器。

例如:

for(int _arr_i = 0; _arr_i < _arr_size; _arr_i++) 
{ 
    _arr_item = Integer.parseInt(in.nextLine()); 
    if (itemNotInList(_arr_item)) 
     repeatedItemsCounter++; 
} 
unrepeadedItems = allItems - repeatedItemsCounter