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

每日一题 78子集(模板)

题目

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

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

示例 1:

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

输入:nums = [0]
输出:[[],[0]]

提示:

1 <= nums.length <= 10
-10 <= nums[i] <= 10
nums 中的所有元素 互不相同

题解

输入的视角

class Solution {private List<List<Integer>> ans = new ArrayList<>();private List<Integer> path = new ArrayList<>();private int[] nums;public List<List<Integer>> subsets(int[] nums) {this.nums = nums;dfs(0);return ans;}/*输入视角 也就是先选 8种情况n         1n  2      n  2  n 3 n 3   n 3 n 3*/private void dfs(int i) {if (i == nums.length) {ans.add(new ArrayList<>(path));return;}//不选元素dfs(i+1);//选择元素path.add(nums[i]);dfs(i+1);//归零 遍历到底部可能会有其他子树没有遍历到,需要退回到与回溯前一样path.remove(path.size() - 1);}
}

答案的视角

class Solution {private List<List<Integer>> ans = new ArrayList<>();private List<Integer> path = new ArrayList<>();private int[] nums;public List<List<Integer>> subsets(int[] nums) {this.nums = nums;dfs(0);return ans;}/*答案的视角 也就是先是null往里面添加答案n1   2   32  3  33   */private void dfs(int i) {//每次递归都要更新一次答案ans.add(new ArrayList<>(path));if (i == nums.length) {return;}//为了避免重复 保证第i+1层的数大于第i层for (int j = i; j < nums.length; j++) {path.add(nums[j]);dfs(j+1);path.remove(path.size() - 1);}}
}
http://www.lryc.cn/news/166216.html

相关文章:

  • OpenCV之形态学操作
  • 设计模式:享元模式
  • 汉诺塔问题(包含了三台柱和四台柱)——C语言版本
  • 【实训项目】滴滴电竞APP
  • C++核心编程--类篇
  • java中用feign远程调用注解FeignClient的时候不重写Encoder和Decoder怎么格式不对呢?
  • 记录使用Docker Compose 部署《XAPI项目》遇道的问题及解决方案
  • 腾讯云OCR实践 - 降低客服财务运营成本
  • springboot+vue上传图片
  • 高压电缆护层接地环流及温度在线监测系统
  • 无涯教程-JavaScript - IPMT函数
  • 【EI会议征稿】第三届机械自动化与电子信息工程国际学术会议(MAEIE 2023)
  • 手写实现LRN局部响应归一化算子
  • 朗思科技数字员工通过统信桌面操作系统兼容性互认认证
  • 十六、Webpack常见的插件和模式
  • ChatGPT新增超强插件:文本直接生成视频、海报,支持自定义修改!
  • 亚像素边缘提取的例子
  • Wayland:推动Linux桌面进入下一代图形显示时代
  • mysql外键(foreign key)
  • 内网穿透——Windows搭建服务器
  • UE5.1 + Android 环境搭建
  • 华为python面试题目
  • IP代理安全吗?如何防止IP被限制访问?
  • 使用 gst-template 创建自己的 gstreamer 插件
  • nginx反向代理,用户访问服务器1的80端口,请求转发至服务器2,3的8882端口
  • Python学习笔记:导入txt、xlsx文件并做简单函数处理
  • uniapp 轮播列表左右滑动,滑动到中间放大
  • 5. 自动求导
  • 【IEEE会议】 第三届智能通信与计算国际学术会议(ICC 2023)
  • 巨人互动|Facebook海外户Facebook风控规则有什么