Здравствуйте, не понимаю как решить задачу. Допустим есть двумерный массив из целых чисел
[
[ 2, 1, 3, 2, 7 ],
[ 8, 7, 6, 8, 1 ],
[ 5, 4, 9, 4, 5 ],
];
Мне нужно определить содержит ли каждый участок 3*3 все числа от в промежутке от 1 до 9
Не пойму как проверять такими участками во всех массивах вместе. И как проверять наличие именно всех чисел в промежутке от 1 до 9
Вариант простой - перебрать все участки 3x3 (смотрите левый верхний угол - это 2 цикла от 0 до width-3 и от 0 до height-3) и проверить, что они хорошие.
Для проверки можно или 1) проверить, что все числа от 1 до 9 и разные, или 2) проверить, что там ровно один раз каждая из цифр встречается. Второй вариант короче и быстрее, но для него вам придется завести массив счетчиков от 0 до 9. Перед каждой проверкой он занулен. Обойдите ваш 3x3 блок и увеличьте соответствующий счетчик (что-то типа count[a[beg_x+i][beg_y+j]]++). Только не забудьте проверить, что число от 1 до 9, чтобы не вылезать за границы массива. Потом пройдитесь по массиву счетчиков циклом от 1 до 9 и проверьте, что там везде стоят единицы.