[LeetCode] #78. Subsets
題目 Given an integer array nums of unique elements, return all possible subsets (the power set). The solution set must not contain duplicate subsets. Return the solution in any order. 直覺解 構想: 用 nums 的長度為遞迴分層 base case: nums 長度 1。只有一個元素的話,所有可能的 subset 就是[有那個元素]、[沒有那個元素] inductive case: pop nums 的最後一個元素,因此 nums 長度會 -1。用遞迴算出 nums 長度-1 的所有 subset,迭代這些 subset,每一圈都把底下這兩個東西 append 到答案裡: 這個 subset 有 pop 掉的最後一個元素 這個 subset 沒有 pop 掉的最後一個元素 python 3 實作: def subsets(self, nums: List[int]) -> List[List[int]]: if len(nums) == 1: ireturn [[], [nums[0]]] result = [] last_item = nums.pop() prev_result = self.subsets(nums) for item in prev_result: icopy = item.copy() iitem.append(last_item) iresult.append(copy) ...