667. Beautiful Arrangement II

要求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个不同的差

你可能感兴趣的:(667. Beautiful Arrangement II)