在 Python 中查找具有相同连续差异的数字的程序
假设我们必须找到一个大小为N的数组,使得每两个连续数字之间的绝对差为K。答案中的每个数字都不能有前导零,除了数字0本身。
所以,如果输入像N=4K=7,那么输出将是[1818,2929,7070,8181,9292],这里0707是无效的,因为它有前导0。
示例
让我们看看以下实现以获得更好的理解-
from collections import deque
def solve(N, K):
if N == 1:
return list(range(10))
queue = deque(list(range(1, 10)))
for n in range(N - 1):
len_queue = len(queue)
for j in range(len_queue):
num = queue.popleft()
lsd = num % 10
if lsd - K >= 0:
queue.append( num * 10 + lsd - K )
if K and lsd + K <= 9:
queue.append( num * 10 + lsd + K )
return list(queue)
N = 4
K = 7
print(solve(N, K))输入
4, 7输出结果
[1818, 2929, 7070, 8181, 9292]
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短