解題筆記 LeetCode 7月挑戰題目之11

2021-10-08 01:36:22 字數 1168 閱讀 8259

這題的要求很簡單,給你乙個只包含不重複的整數的數列的情況下,寫乙個程式來返回所有可能組成的子集/冪集(power set),而且子集不帶重複。

看起來挺容易的,就是乙個個數字抽出來做組合,直到所有數字組合都迭代過就行了。問題是如何在**中實現這個邏輯?

given a set of distinct integers, nums, return all possible subsets (the power set).

note: the solution set must not contain duplicate subsets.

example:

input: nums = [1,2,3]

output:

[[3],

[1],

[2],

[1,2,3],

[1,3],

[2,3],

[1,2],

]

雖然簡單,但也有點難到了我,所以就去了 leetcode discussion forum了解了一下,發現了乙個叫cascading的方法,大概原理就是 :

建立一張空列表(總列)迭代輸入數列,每次提取乙個元素然後用這元素迭代加入總列中每個元素,再替換成總列重複步驟2-3,直到所有元素都被迭代

最後的結果是一張有2n個子集的列表 (n為輸入數列的長度),因此也代表一共執行了2n次。

class

solution

:def

subsets

(self, nums: list[

int])-

> list[list[

int]]:

result =[[

]]for num in nums:

result +=

[current +

[num]

for current in result]

return result

112 路徑總和(leetcode) 7月7日

7月7日 leetcode no.112 路徑總和 相當於遍歷原樹的同時新建一顆形狀相同的 和樹 若和樹葉子結點的val等於目標sum,則返回成功,否則返回失敗。遞迴函式的作用是,輸入當前原樹中的某個節點和 和樹 中對應的節點,返回該節點下是否存在滿足要求的路徑 樹根到葉子結點 bool check...

LeetCode7反轉整數

給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123輸出 321示例 2 輸入 123輸出 321示例 3 輸入 120輸出 21注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返回 0。以字串方式思考...

LeetCode 7 反轉整數

給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123輸出 321示例 2 輸入 123輸出 321示例 3 輸入 120輸出 21注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返回 0。很簡單,就是不...