... или Тороидальные окрестности Мура
Учитывая положительные целые числа 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 за дополнительные тестовые примеры!