首页 > 解决方案 > 排列数组的成员,两个成员之间有 k 个差

问题描述

我想安排数组的成员,使两个成员之间的差异为 k 或更多。例如: a = [1,2,3,4,5] , k = 2 输出 --> [1,4,2,5,3] 1≤ k ≤ n ≤ 1000000 如果不可能,则输出 - -> 打印(“不可能”)

这是我的代码,但是对于大量输入,它得到:“超出时间限制”。

from itertools import permutations
n,k = map(int,input().split())
a = [i for i in range(1,n+1)]
perm = permutations(a)
for p in perm:
    flage = True
    temp = p
    for i in range(1,n):
        if abs(p[i]-p[i-1]) < k:
            flage = False
            break
    if flage:
        break
if flage:
    print(" ".join(str(item) for item in list(temp)))
else:
    print("Impossible")
        

如果指导我,我将不胜感激。

标签: pythonlist

解决方案


推荐阅读