0932-beautiful-array¶
Try it on leetcode
Description¶
An array nums of length n is beautiful if:
numsis a permutation of the integers in the range[1, n].- For every
0 <= i < j < n, there is no indexkwithi < k < jwhere2 * nums[k] == nums[i] + nums[j].
Given the integer n, return any beautiful array nums of length n. There will be at least one valid answer for the given n.
Example 1:
Input: n = 4 Output: [2,1,4,3]
Example 2:
Input: n = 5 Output: [3,1,2,5,4]
Constraints:
1 <= n <= 1000
Solution(Python)¶
from functools import lru_cache
class Solution:
def beautifulArray(self, N):
@lru_cache
def f(N): # 2
if N <= 1:
return [1]
odds = f((N+1)//2) #
evens = f(N//2)
ans = [2*x-1 for x in odds] + [2*x for x in evens]
return ans
return f(N)