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

LeetCode -- Subsets

题目描述:


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


Note:
Elements in a subset must be in non-descending order.
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],
  []
]


求一个集合的所有子集。




这个题目是学习backtracking一道不错的入门题,直接使用回溯结构来解就可以了。需要注意的是,每次添加结果时要对当前子集的元素进行升序排序。


实现代码:


public class Solution {
    public IList<IList<int>> Subsets(int[] nums) 
    {
        var result = new List<IList<int>>();
	
    	Do(nums, 0, new List<int>(), ref result);
    	return result;
    }


    private void Do(int[] nums, int start, List<int> current ,ref List<IList<int>> result)
    {
    	result.Add(new List<int>(current.OrderBy(x=>x)));
    	if(current.Count == nums.Length)
    	{
    		return;
    	}
    	
    	for(var i = start; i < nums.Length; i++){
    		current.Add(nums[i]);
    		Do(nums, i + 1, current, ref result);
    		current.Remove(current.Last());
    	}
    }
}


相关文章:

  • 也谈实体验证(Entity Validation)
  • LeetCode -- Symmetric Tree
  • 越狱 第五季 Microsoft复活
  • LeetCode -- Trap Water Rain
  • leetcode -- Unique Binary Search Trees II
  • WCF中神秘的“8731“端口和“Design_Time_Addresses”
  • LeetCode -- Unique Paths II
  • LeetCode -- Valid Anagram
  • 金旭亮博客之“分布式系统技术”资源主页
  • LeetCode -- Valid Palindrome
  • 中国联通正式公布3G资费标准
  • LeetCode -- Valid Parentheses
  • 手机无线连接(GSM/GPRS)方式
  • LeetCode -- First Missing Positive
  • 3G门户手机浏览器试用感受
  • canvas 绘制双线技巧
  • chrome扩展demo1-小时钟
  • co模块的前端实现
  • eclipse的离线汉化
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • php中curl和soap方式请求服务超时问题
  • spring-boot List转Page
  • underscore源码剖析之整体架构
  • Vue UI框架库开发介绍
  • vuex 笔记整理
  • 关于 Cirru Editor 存储格式
  • 应用生命周期终极 DevOps 工具包
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​Python 3 新特性:类型注解
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • # 计算机视觉入门
  • #include
  • #Java第九次作业--输入输出流和文件操作
  • $ git push -u origin master 推送到远程库出错
  • (12)目标检测_SSD基于pytorch搭建代码
  • (70min)字节暑假实习二面(已挂)
  • (二)正点原子I.MX6ULL u-boot移植
  • (排序详解之 堆排序)
  • (转)四层和七层负载均衡的区别
  • (转)为C# Windows服务添加安装程序
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .Net6使用WebSocket与前端进行通信
  • .net与java建立WebService再互相调用
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @EnableAsync和@Async开始异步任务支持
  • @GlobalLock注解作用与原理解析
  • @RequestMapping-占位符映射
  • @synthesize和@dynamic分别有什么作用?
  • [] 与 [[]], -gt 与 > 的比较
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [Android]使用Android打包Unity工程
  • [C puzzle book] types