... или Тороидальные окрестности Мура
Учитывая положительные целые числа h, wи неотрицательное целое число i, возвращать все индексы окружающих i.
Вы должны принять матрицу, состоящую из hстрок wэлементов, пронумерованных от самого низкого в верхнем левом углу до самого высокого в нижнем правом углу, и вернуть, в любом разумном формате, список индексов, которые будут окружить указатель i. Эта матрица является тором (бесконечная карта, которая оборачивается вокруг каждого ребра).
Например, входы h=4и w=4, приведут к матрице:
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
но более конкретно:
15 12 13 14 15 12
3 0 1 2 3 0
7 4 5 6 7 4
11 8 9 10 11 8
15 12 13 14 15 12
3 0 1 2 3 0
так что если бы iбыло 0, вам нужно было бы вернуться 15, 12, 13, 3, 1, 7, 4, 5(на основе 0).
Примеры
0 на основе:
h w i Expected result
4 4 5 0, 1, 2, 4, 6, 8, 9, 10
4 4 0 15, 12, 13, 3, 1, 7, 4, 5
4 5 1 15, 16, 17, 0, 2, 5, 6, 7
1 3 2 1, 2, 0, 1, 0, 1, 2, 0
1 1 0 0, 0, 0, 0, 0, 0, 0, 0
1 на основе:
h w i Expected result
4 4 6 1, 2, 3, 5, 7, 9, 10, 11
4 4 1 16, 13, 14, 4, 2, 8, 5, 6
4 5 2 16, 17, 18, 1, 3, 6, 7, 8
1 3 3 2, 3, 1, 2, 1, 2, 3, 1
1 1 1 1, 1, 1, 1, 1, 1, 1, 1
правила
- Ваш ответ может быть 0 или 1 проиндексирован, ваш выбор, пожалуйста, уточните.
- Вы можете предположить, что
i < h * w(илиi <= h * wдля 1-индексированных ответов). - Вы можете предположить, что
i >= 0(илиi > 0для 1-индексированных ответов). - Порядок возвращаемых значений не важен, если включены только восемь желаемых значений.
- Стандартные лазейки запрещены .
- Это код-гольф, поэтому выигрывает самый короткий ответ на каждом языке!
Спасибо @Conor O'Brien за более технически звучащий заголовок и @ngm за дополнительные тестовые примеры!