對於某些固定的 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 那麼陣...