1. 程式人生 > >LeetCode--Subsets(集合的子集)Python

LeetCode--Subsets(集合的子集)Python

題目:

給定一個數組,返回該陣列所有可能的子集,包含空陣列和它本身。

解題思路:

考慮是用迭代的思想。陣列中只有一個數字時,返回空集合和數字本身,再新加一個數字時,將原先的所有子集加上新的數字,就是包含新數字的子集,保留之前不包含新數字的子集。這兩個子集直接相加就是新的所有子集。一樣地當陣列長度不斷增加,我們不斷往原來子集上迭代新的集合即可。

程式碼(Python):

class Solution(object):
    def subsets(self, nums):
        """
        :type nums: List[int]
        :rtype: List[List[int]]
        """
        output = [[]]
        for i in range(len(nums)):
            for j in range(len(output)):
                output.append(output[j]+[nums[i]])
        return output