Проверка строк 2d ArrayList для определенных значений - PullRequest
0 голосов
/ 10 февраля 2012

Я пытаюсь просканировать каждую строку 2-мерного массива (размеры 100x100) и убедиться, что в каждой строке (и последующих столбцах) будет только 1 экземпляр каждого целого числа от 1 до 100. В следующем коде я пытаюсь конечно, каждая строка имеет только один экземпляр каждого целого числа от 1 до 100, но, очевидно, синтаксис не работает. Есть какой-нибудь метод, который мог бы протолкнуть это или что я пропускаю?

Спасибо за любую помощь

for(int i = 0; i<100; i++) {

        for (int j=0; j<100 ; j++) {
            if(2dARR.get(i).get(j).contains(1) && 2dArr.get(i).get(j).contains(2)(.....)) {
                System.out.println("FK");
            }

        }

    }

Ответы [ 2 ]

0 голосов
/ 10 февраля 2012

Сбросьте его в набор, убедитесь, что размер массива и набора равен.Если это не так, есть дубликаты.Если вы пройдете этот тест, запустите цикл через массив и убедитесь, что все значения больше 0 и меньше 101 (1-100).

0 голосов
/ 10 февраля 2012
for(int i = 0; i<100; i++) {
  Set<Integer> numbersInRow = new HashSet<Integer>();  
  for (int j=0; j<100 ; j++) {
    int num = 2dARR.get(i).get(j);
    if (num < 1 || num > 100) {
       // out of bounds, handle error
    }
    else {
       numbersInRow.add(num);
    }
  }
  // At this point we have the set of numbers found in the row, all guaranteed to be >=1 and <= 100
  if (numbersInRow.size() != 100) {
     // at least one number appeared more than once
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...