Как проверить соседние индексы двумерного массива - Отелло

Стандарт фактически гарантирует, что vector является непрерывным в памяти и что &a[0] может быть передан функции C, которая ожидает массив.

Исключением из этого правила является vector<bool>, который использует только один бит на bool, хотя он имеет непрерывную память, он не может использоваться как bool* (это широко считается ложной оптимизацией и ошибкой).

Кстати, почему бы вам не использовать итераторы? Для этого они нужны.

1
задан jingx 18 January 2019 в 04:10
поделиться

1 ответ

Вы можете получить 8 соседних ячеек, используя два разных массива. Эти массивы используются для получения номеров строк и столбцов 8 соседей данной ячейки

int rowNbr[] = new int[] {-1, -1, -1,  0, 0,  1, 1, 1}; 
int colNbr[] = new int[] {-1,  0,  1, -1, 1, -1, 0, 1}; 

и итерации данной матрицы путем добавления текущей строки / столбца к вышеуказанным массивам, например:

for (int k = 0; k < 8; ++k) {
  sop(matrix[row + rowNbr[k], col + colNbr[k]])
}
[ 115] Кроме того, вы можете проверить https://www.geeksforgeeks.org/find-number-of-islands/

Надеюсь, это поможет вам в дальнейшем процессе мышления. Thnx

0
ответ дан Ashutosh 18 January 2019 в 04:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: