2016-05-24 11 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 и проверить элемент спереди и сзади по каждому индексу для этого она содержит другое значение. Если значение отличается от предыдущего и следующего элементов, добавьте его в счетчик. Обязательно проверьте, чтобы перед тем как обращаться к этим индексам, индекс спереди или сзади не равен -1 или arr.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 
Смежные вопросы