题目:原题链接(中等)

标签:分治算法、递归

解法 时间复杂度 空间复杂度 执行用时
Ans 1 (Python) O ( N l o g N ) O(NlogN) O(NlogN) O ( N ) O(N) O(N) 52ms (30.77%)
Ans 2 (Python)
Ans 3 (Python)

解法一:

class Solution:
    def beautifulArray(self, N: int) -> List[int]:
        if N <= 2:
            return [i for i in range(1, N + 1)]
        else:
            d, r = divmod(N, 2)
            a, b = d + r, d
            res1 = self.beautifulArray(a)
            res2 = self.beautifulArray(b)
            res1 = [n * 2 - 1 for n in res1]
            res2 = [n * 2 for n in res2]
            return res1 + res2