受生成键盘友好数字的启发。
背景
许多数字键盘的布局如下:
789
456
123
0
我们将数字的邻域定义为在所示数字键盘上与其正交正交的一组单元格,包括其自身。例如,2的邻居是{1,5,3,0,2}
,0的邻居是{1,2,0}
。在测试用例的上方,下面列出了每个数字的邻域。
我们将小键盘友好数字定义为正整数,其中当以十进制形式编写而没有前导零时,除第一个数字外的每个数字都位于前一个数字附近。
例如,
- 7856是小键盘的友好数字,因为8在7的附近,5在8的邻居中,6在5的附近。
- 1201是一个小键盘的友好数字,因为2在1附近,0在2附近,而1在0附近。
- 82 不是小键盘的友好数字,因为2不在8附近。
- 802 不是小键盘的友好数字,因为0不在8附近(邻居不会环绕)。
相关OEIS序列。请注意,此相关的序列是不同的,因为它计算0为邻近7的,而不是1和2。
挑战
给定正整数n
,返回第- n
个或第一个n
数字键盘友好数字,其中第一个为1。您可以使用基于0的索引,第0个数字键盘友好数字为1。
邻里
每个数字的邻居在这里列出:
0:{0,1,2}
1:{0,1,2,4}
2:{0,1,2,3,5}
3:{2,3,6}
4:{1,4,5,7}
5:{2,4,5,6,8}
6:{3,5,6,9}
7:{4,7,8}
8:{5,7,8,9}
9:{6,8,9}
测试用例/顺序
这是前100个学期
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 20, 21, 22, 23, 25, 32, 33, 36, 41, 44, 45, 47, 52, 54, 55, 56, 58, 63, 65, 66, 69, 74, 77, 78, 85, 87, 88, 89, 96, 98, 99, 100, 101, 102, 110, 111, 112, 114, 120, 121, 122, 123, 125, 141, 144, 145, 147, 200, 201, 202, 210, 211, 212, 214, 220, 221, 222, 223, 225, 232, 233, 236, 252, 254, 255, 256, 258, 320, 321, 322, 323, 325, 332, 333, 336, 363, 365, 366, 369, 410, 411, 412, 414, 441, 444, 445, 447]