代码随想录算法训练营第二十九天(回溯算法篇)|78. 子集

这周开始实习了,期间改了改成绩已经出来的毕业论文,发给导师,不知道有没有发表的机会。实习后,虽然实际任务不多,但每天七点起床,来回通勤两个小时,已让我疲惫。好久没有练手了,这次比以往多了些浮躁,少了之前从代码的逻辑中体会到的快乐。希望以后会变好。

78. 子集

题目链接:78. 子集 - 力扣(LeetCode)

思路

nums的子集互不相同,题目变得简单,不用考虑去重。与组合不同的是,我们这次不只在叶子节点中收获结果,而是在没进入一个递归,便收集一次。(e.g. nums = [1, 2, 3], 在同一条枝杈,我们要依次把[1],[1,2]...加进result中,而不只是最后的[1,2,3]。

代码实现

class Solution(object):
    def backtracking(self, nums, startIndex, path, result):
        result.append(path[:])
        if startIndex > len(nums):
            return

        for i in range(startIndex, len(nums)):
            path.append(nums[i])
            self.backtracking(nums, i+1, path, result)
            path.pop()

    def subsets(self, nums):
        result = []
        self.backtracking(nums, 0, [], result)
        return result

最近更新

  1. TCP协议是安全的吗?

    2024-01-01 15:26:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-01 15:26:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-01 15:26:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-01 15:26:03       20 阅读

热门阅读

  1. Android 配置不同应用ID

    2024-01-01 15:26:03       41 阅读
  2. 算法练习Day26 (Leetcode/Python-贪心算法)

    2024-01-01 15:26:03       42 阅读
  3. 分支和循环的综合作业

    2024-01-01 15:26:03       39 阅读
  4. 【Git】git基础

    2024-01-01 15:26:03       34 阅读
  5. Linux环境安装1

    2024-01-01 15:26:03       36 阅读
  6. PathManager功能

    2024-01-01 15:26:03       37 阅读
  7. xinference

    2024-01-01 15:26:03       47 阅读
  8. docker 部署mysql

    2024-01-01 15:26:03       41 阅读
  9. Resilience4j相关面试题及答案

    2024-01-01 15:26:03       38 阅读
  10. 6.6 会话与输入事件(三)

    2024-01-01 15:26:03       36 阅读
  11. AI多多:人工智能的魅力与无限可能

    2024-01-01 15:26:03       43 阅读
  12. zdppy_api框架快速入门

    2024-01-01 15:26:03       36 阅读