欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

78.Subsets

发布时间:2023/12/18 编程问答 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 78.Subsets 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Given a set of distinct integers, nums, return all possible subsets.

Note: The solution set must not contain duplicate subsets.

For example,
If nums = [1,2,3], a solution is:

[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[] ]
昨天中秋加上头非常痛,歇了一天。早上起来看了个cse学生的新闻,又滚回被窝里睡了好久,准备再歇一天的。打开看了看一亩三分地,别人99道题
就能刷进linkedin,虽然基础可能差蛮多但还是非常想去投一投简历试试的。过了九月就大批招聘来了,一定要抓紧时间刷刷题看看书。没有书
上知识的支撑只看公开课视频感觉还是很虚没底。

思路:dfs+backtracking。对节点的操作需要注意:1.碰到节点就记录到result:即为pos<=nums.length 2.dps的方向,尽头(回溯点):pos==nums.length
每一层的操作用pos来记录,防重复。
画graph可以深入理解不同的dps,各种的对节点操作。

public class Solution {public List<List<Integer>> subsets(int[] nums) {List<List<Integer>> res=new ArrayList<>();List<Integer> check=new ArrayList<>();dps(nums,res,check,0);return res;}public void dps(int[] nums,List<List<Integer>> res,List<Integer> list,int pos){if(pos<=nums.length){res.add(new ArrayList<Integer>(list));}if(pos==nums.length){return;}for(int i=pos;i<nums.length;i++){list.add(nums[i]);dps(nums,res,list,++pos);list.remove(list.size()-1);}}}

 

转载于:https://www.cnblogs.com/Machelsky/p/5877871.html

总结

以上是生活随笔为你收集整理的78.Subsets的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。