当前位置: 首页 > news >正文

长沙县住房和城乡建设局网站谷歌推广优化

长沙县住房和城乡建设局网站,谷歌推广优化,网上注册公司官网入口,来年做那个网站致富文章目录 题目链接解题思路解题代码 题目链接 78. 子集 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入&#xff…

文章目录

  • 题目链接
  • 解题思路
  • 解题代码


题目链接

78. 子集

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。

解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。

示例 1:
输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

示例 2:
输入:nums = [0]
输出:[[],[0]]

解题思路

回溯算法
下面我们根据回溯算法三步走,写出对应的回溯算法。

  • 1.明确所有选择:根据数组中每个位置上的元素选与不选两种选择。
  • 2.明确终止条件:当遍历到决策树的叶子节点时,就终止了。即当前路径搜索到末尾时,递归终止。
  • 3.将决策树和终止条件翻译成代码:
    • 定义回溯函数:
      • backtracking(nums, index): 函数的传入参数是 nums(可选数组列表)和 index(代表当前正在考虑元素是 nums[i] ),全局变量是 res(存放所有符合条件结果的集合数组)和 path(存放当前符合条件的结果)。
      • backtracking(nums, index): 函数代表的含义是:在选择 nums[index] 的情况下,递归选择剩下的元素。
    • 书写回溯函数主体(给出选择元素、递归搜索、撤销选择部分)。
      • 从当前正在考虑元素,到数组结束为止,枚举出所有可选的元素。对于每一个可选元素:
        • 约束条件:之前选过的元素不再重复选用。每次从 index 位置开始遍历而不是从 0 位置开始遍历就是为了避免重复。集合跟全排列不一样,子集中 {1, 2} 和 {2, 1} 是等价的。为了避免重复,我们之前考虑过的元素,就不再重复考虑了。

        • 选择元素:将其添加到当前子集数组 path 中。

        • 递归搜索:在选择该元素的情况下,继续递归考虑下一个位置上的元素。

        • 撤销选择:将该元素从当前子集数组 path 中移除。

            for i in range(index, len(nums)):   # 枚举可选元素列表path.append(nums[i])            # 选择元素backtracking(nums, i + 1)       # 递归搜索path.pop()                      # 撤销选择
          
    • 明确递归终止条件(给出递归终止条件,以及递归终止时的处理方法)。
      • 当遍历到决策树的叶子节点时,就终止了。也就是当正在考虑的元素位置到达数组末尾(即 start >= len(nums))时,递归停止。
      • 从决策树中也可以看出,子集需要存储的答案集合应该包含决策树上所有的节点,应该需要保存递归搜索的所有状态。所以无论是否达到终止条件,我们都应该将当前符合条件的结果放入到集合中。

解题代码

class Solution:def subsets(self, nums: List[int]) -> List[List[int]]:res = []  # 存放所有符合条件结果的集合path = []  # 存放当前符合条件的结果def backtracking(nums, index):          # 正在考虑可选元素列表中第 index 个元素res.append(path[:])                 # 将当前符合条件的结果放入集合中if index >= len(nums):              # 遇到终止条件(本题)returnfor i in range(index, len(nums)):   # 枚举可选元素列表path.append(nums[i])            # 选择元素backtracking(nums, i + 1)       # 递归搜索path.pop()                      # 撤销选择backtracking(nums, 0)return res

参考资料:datawhalechina

http://www.yayakq.cn/news/126556/

相关文章:

  • 做网站公司找哪家公司wordpress autumn默认主页
  • 网站需要哪些证件企业oa系统下载
  • 鲜花店网站建设网站品牌建设建议
  • 企业门户网站建设情况那些网站可以上传自己做的视频
  • 建站知识长沙十大景点
  • asp与sql做网站织梦网站做图床
  • 百度网站排名全掉建筑设计软件有哪些软件
  • 做网站卖假名牌违法吗网站策划人员需要做哪些工作
  • 设计网站架构网站建设 有限公司
  • 专业做租赁的平台网站有哪些最新重大新闻
  • 网站建设费用 多少钱百度手机助手app免费下载
  • 内蒙古网站建设信息国外的wordpress主题公园
  • 徐州IT兼职网站开发wordpress用户投稿插件
  • 网站开发公司哪里好免费虚拟机安卓版
  • 婚纱照网站模板网络营销策划方案案例
  • 企业网站前期建设方案案例集美seo
  • 黑客黑网站是做网站wordpress怎么信用卡收款
  • 做影视网站怎么赚钱沈阳免费网站建站模板
  • 网站建设作品东莞公司建网站模板
  • 门户网站建设ppt方案肥城网站建设
  • 做网页做网站的技术人才中国建设监理工程协会网站
  • 金华网站建设团队学做川菜的网站
  • 网站开发客户需求文档专业的盐城网站建设
  • 袜子技术支持北京网站建设网站怎么做评估
  • 重庆网站营销建设网站怎么收费
  • 烟台制作网站的公司哪家好网站关键字个数
  • vps做网站 推广wordpress 注册 填写密码错误
  • 商城类型的网站怎么做怎么建立一个网站开展业务
  • 青州网站建设qzfuwuwordpress分类下文章排序
  • 中国建设银行网站密码是什么昆明小程序公司