在Python中找到具有相同连续差异的数字的程序
假设我们必须找到一个大小为N的数组,使每两个相邻数字的绝对差为K。答案中的每个数字都不得有前导零,除了数字0本身。
因此,如果输入为N = 4 K = 7,则输出将为[1818、2929、7070、8181、9292],其中0707无效,因为它具有前导0。
为了解决这个问题,我们将按照以下步骤进行−
- 如果N与1相同,则
- 从范围0到9返回一个新列表
- queue :=使用1到9之间的所有元素创建一个队列
-
对于n在范围0到N-2中进行,执行
- len_queue := queue的大小
-
对于j在范围0到len_queue-1中进行,执行
- num :=队列的左侧项目,并从队列中删除它
-
lsd := num mod 10
-
如果lsd-K >=0,则
-
在队列的末尾插入num * 10 + lsd – K
-
如果K且lsd + K <= 9,则
-
在队列的末尾插入num * 10 + lsd + K
-
返回队列的元素
示例
让我们看下面的实现以获得更好的理解−