热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

leetcode:78.子集(java,位运算,深搜dfs)

给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入:n

给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3]
输出:
[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]
]

第一种是按位运算排名不是很理想

public List> subsetswei(int[] nums) {List> res &#61; new ArrayList<>();if (nums.length &#61;&#61; 0) return res;//二进制最大的数int max &#61; (int) Math.pow(2, nums.length);//每一个进行循环比如是三位也就是1-7循环看看是哪一位二进制七位for (int i &#61; 1; i rr &#61; new ArrayList<>();for (int j &#61; 0; j (rr));}return res;}

第二种是dfs比较理想

public List> subsets(int[] nums) {List> res &#61; new ArrayList<>();if (nums.length &#61;&#61; 0) return res;res.add(new ArrayList());dfs(0, nums, res, new ArrayList());return res;}public void dfs(int indx, int[] nums, List> res, List rr) {for (int i &#61; indx; i (rr));//继续下一个数字dfs(i&#43;1,nums,res,rr);rr.remove(rr.size()-1);}}

 


推荐阅读
author-avatar
东东84321
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有