932 漂亮陣列

2021-10-02 21:30:22 字數 810 閱讀 6213

對於某些固定的 n,如果陣列 a 是整數 1, 2, …, n 組成的排列,使得:對於每個 i < j,都不存在 k 滿足 i < k < j 使得 a[k] * 2 = a[i] + a[j]。那麼陣列 a 是漂亮陣列。

給定 n,返回任意漂亮陣列 a(保證存在乙個)。

解題思路

關於漂亮陣列的性質:

首先,不存在 k 滿足 i < k < j 使得 a[k] * 2 = a[i] + a[j]。

時間複雜度:o(nlogn)

空間複雜度:o(nlogn)

class

solution

:def

beautifularray

(self, n:

int)

-> list[

int]

: ans=[1

]while

len(ans)

# 退出時長度可能超過n,可能存在比n大的數

Leetcode932 漂亮陣列

題目 解題思路 使用遞迴的方法。由題目可知,給定乙個n,給出符合條件的排列。遞迴使大問題變成小問題,將n縮小,縮小到可以輕鬆解決的的大小,所以當n為1時,遞迴結束,返回1.如何將結果合併呢?我們知道當某個陣列排序符合條時,假設該陣列為a,那麼ka n也是符合條件的陣列,k是a的倍數,也就是說a的線性...

T932 漂亮陣列

利用漂亮陣列的性質 因為要使乙個陣列為漂亮陣列 則就要滿足下列性質 1 對任意的對於每個 i j,都不存在 k 滿足 i k j 使得 a k 2 a i a j 觀察這個等式的左邊 a k 2 它一定是乙個偶數,要使這個等式不成立,則有一種情況一定可以滿足 即令等式右邊 a i a j 為乙個奇數...

leetcode932 漂亮陣列

今天想找幾道分治的題目做做,有些題不用分治的思想做,想光找到直接規律真的有點難,但是分治思想也需要清晰的邏輯才能考慮清楚,還需要多加練習。對於某些固定的 n,如果陣列 a 是整數 1,2,n 組成的排列,使得 對於每個 i j,都不存在 k 滿足 i k j 使得 a k 2 a i a j 那麼陣...