python - 排列数组的成员,两个成员之间有 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")
如果指导我,我将不胜感激。
解决方案
推荐阅读
- asp.net - 在 plesk 上发布 asp.net 网站时出错
- python - numpy 数组中非唯一行的快速组合,映射到列(即快速数据透视表问题,没有 Pandas)
- linux - 启动后自动运行烧瓶应用程序无法正常工作
- python-3.x - 为什么使用shututil在循环内移动文件时找不到文件错误?
- graphql - 不使用 Mutation 组件触发 GraphQL 突变
- google-coral - 我可以在珊瑚边缘 TPU 中运行回归模型吗?
- python - 如何在没有 \n 的情况下将项目添加到列表中?
- content-security-policy - 如何允许脚本添加内联 css 而不允许`unsafe-inline` CSP?
- reactjs - 如何抓取我的本地主机反应应用程序?
- python-3.x - 为什么我的标准输出不是 REVEL 中所期望的?