要求n个不同的正整数,且相邻的数需要k个不同的差.
那么设k=n-1
我们先构造[1,2,...,n-k-1],这里有n-k-1个数,他们之间的差为1.
ans = [i for i in range(1, n-k)]
再构造[1,n,2,n-1,3,n-2,...]这里构造n-1个不同的差(k,k-1,...1)
for d in range(k+1):
if d%2 == 0:
ans.append(n-k+d//2)
else:
ans.append(n-d//2)
这样就满足条件,数组有n个不同的正整数,且相邻的数需要k个不同的差
网友评论