回溯-子集

打印 上一主题 下一主题

主题 661|帖子 661|积分 1983

78.子集
  1. 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
  2. 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
复制代码
输入:整型数组
输出:二元列表
思路:利用二进制,(比如说数组长度为3)000、001、010、011、100、101、110、111刚好可以遍历所有情况
  1. class Solution {
  2.     List<List<Integer>> result = new ArrayList<>();
  3.     List<Integer> tempList = new ArrayList<>();
  4.     public List<List<Integer>> subsets(int[] nums) {
  5.         int n = nums.length;
  6.         for(int i = 0; i < (1 << n); i++){
  7.             tempList.clear();
  8.             for(int j = 0; j < n; j++){
  9.                 if((i & (1 << j)) != 0){
  10.                     tempList.add(nums[j]);
  11.                 }
  12.             }
  13.             result.add(new ArrayList<>(tempList));
  14.         }
  15.         return result;
  16.     }
  17. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

李优秀

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表