1"""2
思路:3
1、如何滿足漂亮陣列?
4奇數 + 偶數 = 奇數 =》將陣列,拆分為兩部分:奇數漂亮陣列 + 偶數漂亮陣列56
2、如何獲取 奇數漂亮陣列 和 偶數漂亮陣列?
7舉例:求n=7的漂亮陣列
8獲取奇數陣列:1 3 5 7 偶數陣列:2 4 6910
由於:11
如果乙個陣列是漂亮陣列,則對該陣列所有元素進行 【乘以同乙個值】或者【加/減 同乙個值】,則獲得的陣列仍為漂亮陣列
12故:
13求 1 3 5 7 的漂亮陣列 《=》 求 1 2 3 4 的漂亮陣列,在對陣列元素進行 2x-1,即可
14求 2 4 6 的漂亮陣列 《=》 求 1 2 3 的漂亮陣列,再對陣列元素進行 2x,即可
1516
綜上,求 「n=7的漂亮陣列」,轉換為了 「求n=4的漂亮陣列」 和 「求n=3的漂亮陣列」。
1718
分治 遞迴 可解該題。
19"""
2021
class
solution:
22def
__init__
(self):
23 self.n_to_ans =none
2425
def beautifularray(self, n: int) ->list[int]:
26 self.n_to_ans =
27self.solve(n)
28return
self.n_to_ans[n]
2930
defsolve(self, n):
31if n not
inself.n_to_ans:
32 odd_ls = self.solve((n+1)//2)
33 even_ls = self.solve(n//2)
34 self.n_to_ans[n] = [(2*i-1) for i in odd_ls] + [(2*i) for i in
even_ls]
35return self.n_to_ans[n]
Leetcode932 漂亮陣列
題目 解題思路 使用遞迴的方法。由題目可知,給定乙個n,給出符合條件的排列。遞迴使大問題變成小問題,將n縮小,縮小到可以輕鬆解決的的大小,所以當n為1時,遞迴結束,返回1.如何將結果合併呢?我們知道當某個陣列排序符合條時,假設該陣列為a,那麼ka n也是符合條件的陣列,k是a的倍數,也就是說a的線性...
leetcode932 漂亮陣列
今天想找幾道分治的題目做做,有些題不用分治的思想做,想光找到直接規律真的有點難,但是分治思想也需要清晰的邏輯才能考慮清楚,還需要多加練習。對於某些固定的 n,如果陣列 a 是整數 1,2,n 組成的排列,使得 對於每個 i j,都不存在 k 滿足 i k j 使得 a k 2 a i a j 那麼陣...
932 漂亮陣列
對於某些固定的 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 使得 ...