专栏首页曌的晓痴LeetCode - 子集

LeetCode - 子集

这题是本文的三周以前做的,也算是一题很常见的题目。

原题地址: https://leetcode-cn.com/problems/subsets/

题目描述

给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。

说明:解集不能包含重复的子集。

示例:

输入: nums = [1,2,3]

输出:

[

[3],

[1],

[2],

[1,2,3],

[1,3],

[2,3],

[1,2],

[]

]

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/subsets

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

这道题目其实有很多种解决思路,我的思路是这样的:

遍历每个元素,然后再遍历当前所有的子集,为每个子集都添加上当前元素即可。

假设输入为[1,2,3]。那么第一次遍历,元素为1,当前子集为一个空列表,那么在此基础上为空集合新增元素1,当前子集就变成了[]和[1]。

第二次遍历元素[2],再在此基础上为每个子集都添加元素2,子集就变成了[],[1],[2],[1,2]。

最后遍历元素[3],子集最终成为[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]。

中文官网题解:

https://leetcode-cn.com/problems/subsets/solution/

个人题解:

 public List<List<Integer>> subsets(int[] nums) {
     List<List<Integer>> list = new LinkedList<>();
     list.add(Collections.emptyList());
     if (nums.length == 0) {
         return list;
     }
     for (int i : nums) {
         List<List<Integer>> tList = new LinkedList<>();
         for (List<Integer> l : list) {
             List<Integer> tmp = new ArrayList<>(l);
             tmp.add(i);
             tList.add(tmp);
         }
         list.addAll(tList);
     }
     return list;
 }

结果:

这题依然是一个正常水平的发挥,差不多一半的水平,依然保持稳定的效率....

本文分享自微信公众号 - 曌的晓痴(gh_543795945efe),作者:zxyAnkh

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LeetCode - 括号生成

    原题地址: https://leetcode-cn.com/problems/generate-parentheses/

    晓痴
  • LeetCode - 存在重复元素

    原题地址:https://leetcode-cn.com/problems/contains-duplicate/

    晓痴
  • LeetCode - 电话号码的字母组合

    原题地址:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/

    晓痴
  • 开源权限系统sshpermissions

    第一章 引言 1.1 编写目的 使用easyui+ssh2+shiro的权限管理系统,粒度可细化到按钮及菜单级别。目前是第一个稳定版本,可实现基本的权限控制功能...

    cloudskyme
  • Kali系列--网络军刀NC!

    Netcat is a featured networking utility which reads and writes data across netwo...

    意大利的猫
  • 【漏洞预警】IE浏览器远程代码执行漏洞(CVE-2019-1367)预警通告

    当地时间 9月 23 日,微软官方发布了一则“IE浏览器累积安全更新”,修复了Internet Explorer中的一个远程代码执行漏洞(CVE-2019-13...

    绿盟科技安全情报
  • Windows下安装python第三方包、模块汇总

    Windows下安装python第三方包、模块汇总如下(部分方式同样适用于其他平台): 1. 直接安装 windows下最常见的*.exe,*.msi文件,直接...

    数据科学社区
  • Facebook发布虚拟社交平台Spaces,开启全新社交时代

    镁客网
  • RabbitMQ 消费端限流、TTL、死信队列

    假设一个场景,首先,我们 Rabbitmq 服务器积压了有上万条未处理的消息,我们随便打开一个消费者客户端,会出现这样情况: 巨量的消息瞬间全部推送过来,但是我...

    java进阶架构师
  • 消息中间件Rabbit Mq的了解与使用

    MQ(消息队列)作为现代比较流行的技术,在互联网应用平台中作为中间件,主要解决了应用解耦、异步通信、流量削锋、服务总线等问题,为实现高并发、高可用、高伸缩的企业...

    sucl

扫码关注云+社区

领取腾讯云代金券