Nếu chúng ta lấy các số tự nhiên và cuộn chúng ngược chiều kim đồng hồ thành một vòng xoắn ốc, chúng ta sẽ kết thúc với vòng xoắn vô hạn sau:
....--57--56
|
36--35--34--33--32--31--30 55
| | |
37 16--15--14--13--12 29 54
| | | | |
38 17 4---3---2 11 28 53
| | | | | | |
39 18 5 0---1 10 27 52
| | | | | |
40 19 6---7---8---9 26 51
| | | |
41 20--21--22--23--24--25 50
| |
42--43--44--45--46--47--48--49
Đưa ra một số con số trong vòng xoắn ốc đó, nhiệm vụ của bạn là xác định hàng xóm của nó - nghĩa là phần tử bên trên, bên trái, bên phải và bên dưới nó.
Thí dụ
Nếu chúng ta nhìn vào 27
chúng ta có thể thấy rằng nó có những người hàng xóm sau:
- ở trên:
28
- trái:
10
- đúng:
52
- phía dưới:
26
Vì vậy, đầu ra sẽ là: [28,10,52,26]
Quy tắc
- Đầu vào sẽ là số ở bất kỳ định dạng I / O mặc định nào
- Đầu ra sẽ là một danh sách / ma trận / .. trong số 4 hàng xóm đó theo thứ tự bất kỳ (nhất quán!)
- Bạn có thể làm việc với hình xoắn ốc bắt đầu bằng 1 thay vì 0, tuy nhiên bạn nên chỉ định điều đó trong câu trả lời của mình
Ví dụ
Đầu ra có định dạng [above,left,right,below]
và sử dụng hình xoắn ốc dựa trên 0:
0 -> [3,5,1,7]
1 -> [2,0,10,8]
2 -> [13,3,11,1]
3 -> [14,4,2,0]
6 -> [5,19,7,21]
16 -> [35,37,15,17]
25 -> [26,24,50,48]
27 -> [28,10,52,26]
73 -> [42,72,74,112]
101 -> [100,146,64,102]
2000 -> [1825,1999,2001,2183]
1000000 -> [1004003,1004005,999999,1000001]