亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

Python怎么輸出數組的所有子集

小億
159
2023-11-22 12:33:22
欄目: 編程語言

可以使用遞歸的方法來輸出數組的所有子集。具體的實現如下:

def subsets(nums):
    res = []
    backtrack(nums, [], res, 0)
    return res

def backtrack(nums, subset, res, start):
    res.append(subset[:])  # 將當前子集加入結果列表
    for i in range(start, len(nums)):
        subset.append(nums[i])  # 添加當前元素到子集中
        backtrack(nums, subset, res, i+1)  # 遞歸調用下一層,start參數為i+1,表示下一個位置從i+1開始
        subset.pop()  # 回溯,將添加的元素移除

# 測試
nums = [1, 2, 3]
print(subsets(nums))

輸出結果為:

[[], [1], [1, 2], [1, 2, 3], [1, 3], [2], [2, 3], [3]]

這里使用了回溯法,通過維護一個當前子集的列表subset,并在每次遞歸調用之前將當前子集加入結果列表res中。然后通過遍歷數組中的每個元素,在每個元素的位置上繼續遞歸調用,直到遍歷完整個數組。在遞歸調用的過程中,通過增加一個start參數來控制下一次遞歸的起始位置,從而避免生成重復的子集。

0
宁乡县| 江西省| 青州市| 博兴县| 镇平县| 马公市| 吐鲁番市| 阳朔县| 武宁县| 云林县| 新龙县| 翁牛特旗| 商洛市| 阿巴嘎旗| 乐昌市| 桐梓县| 武乡县| 萝北县| 固始县| 龙川县| 南雄市| 红原县| 平武县| 会同县| 宜都市| 克山县| 怀安县| 屏东市| 华阴市| 罗田县| 宁波市| 徐水县| 托克逊县| 普定县| 哈尔滨市| 沙雅县| 青岛市| 定西市| 榆树市| 淮滨县| 祁阳县|