中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
武陟县| 芮城县| 辽宁省| 杨浦区| 仙桃市| 洛川县| 亚东县| 澄城县| 融水| 淳化县| 明溪县| 华池县| 江门市| 洛宁县| 泰宁县| 灵丘县| 昌黎县| 抚松县| 百色市| 托克托县| 正蓝旗| 汕尾市| 社旗县| 图片| 洪洞县| 德江县| 蒙自县| 贵定县| 华阴市| 武汉市| 永宁县| 东安县| 衡山县| 伊川县| 商都县| 朝阳县| 军事| 天门市| 秦皇岛市| 罗城| 海口市|