91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
青铜峡市| 即墨市| 广安市| 云林县| 资溪县| 新郑市| 来安县| 鸡东县| 卓资县| 兰坪| 大悟县| 阿鲁科尔沁旗| 长治县| 海晏县| 咸丰县| 四平市| 娄烦县| 三门峡市| 徐汇区| 高要市| 陆良县| 泽州县| 科技| 额济纳旗| 巴林左旗| 浙江省| 如皋市| 特克斯县| 中方县| 莒南县| 宝应县| 民勤县| 锦屏县| 铅山县| 湟中县| 华亭县| 睢宁县| 广东省| 海伦市| 汝州市| 玉林市|