leetcode90子集II-回溯-Java

news2024/11/26 0:41:29

说明:在这里插入图片描述

问题描述来源leetcode

题解1:

/**
 * @author xin麒
 * @date 2022/12/15 11:18
 * 给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。
 * 解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。
 * 示例 1:输入:nums = [1,2,2] 输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]
 * 示例 2:输入:nums = [0] 输出:[[],[0]]
 * 提示:1 <= nums.length <= 10     -10 <= nums[i] <= 10
 */
public class Solution {
    List<List<Integer>> res = new ArrayList<>();
    List<Integer> path = new LinkedList<>();
    private int[] nums;


    public List<List<Integer>> subsetsWithDup(int[] nums) {
        Arrays.sort(nums);
        this.nums = nums;
        backTracking(0);
        return res;
    }

    private void backTracking(int startIndex) {

        if (path.size() != 0 && startIndex < nums.length
                && path.get(0) == nums[startIndex] && nums[startIndex] != nums[startIndex - 1]){
            ArrayList<Integer> list = new ArrayList<>();
            list.add(nums[startIndex] );
            res.add(list);
        }
        res.add(new ArrayList<>(path));
        for (int i = startIndex; i < nums.length; i++) {

            if (i > startIndex && nums[i] == nums[i - 1]) continue;
            path.add(nums[i]);

            backTracking(i + 1);

            path.remove(path.size() - 1);

        }
    }
}

end

这个题相当于leetcode题40的if (i > startIndex && nums[i] == nums[i - 1]) 和leetcode题78的合体的结果,昨天刚做完40和78,今天手感火热,理解了那两题这个题就基本了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/90422.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DPDK介绍

一、什么是DPDK&#xff1f; DPDK 全称是数据平面开发套件 (Data Plane Development Kit)&#xff0c;由 6WIND,Intel 等多家公司开发&#xff0c;主要基于 Linux 系统运行&#xff0c;用于快速数据包处理的函数库与驱动集合&#xff0c;可以极大提高数据处理性能和吞吐量&…

DGIOT边缘主机功能——6USB串口替代普通dtu/网关的设备接入

[小 迪 导读]&#xff1a; dgiot边缘主机自带6个USB口、2个RS232串口以及2个网口&#xff0c;可用组态对边缘主机上的USB口、串口和网口等上的外设进行可视化管理&#xff0c;包括如下功能&#xff1a; 通过6个USB口外接USB转485转换器模拟6个485转以太网/无线的网关/dtu2个RS…

JavaWeb——在线音乐播放器

文章目录效果演示1. 创建SpringBoot项目2. 数据库设计3. 配置数据库和xml4. 登录模块设计4.1 创建User类4.2 创建对应的Mapper和Controller5. 实现登录5.1 登录的请求和响应设计5.2 请求实现5.3 响应实现5.31 设置统一的响应体类工具类5.32 创建常量工具类5.33 优化后完整代码6…

纳米源表测试软件更新,新增太阳能电池测试、双通道脉冲扫描

源表在电测行业中应用十分广泛&#xff0c;尤其是在需求高精度的半导体、纳米器件和材料、太阳能电池、印刷电子技术等领域有着举足轻重的地位&#xff1b;而源表软件则可以实现源表的远程控制&#xff0c;通过在软件控制源表进行配置或者测量&#xff0c;也可以对测量的数据和…

大学生游戏静态HTML网页设计 (HTML+CSS+JS仿英雄联盟网站15页)

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

2.5.9 使用 systemd 管理 MySQL 服务器实例

2.5.9 使用 systemd 管理 MySQL 服务器实例systemd 概述为 MySQL 配置 systemd使用 systemd 配置多个 MySQL 实例从 mysqld_safe 迁移到 systemd如果在以下 Linux 平台上使用 RPM 或 Debian 软件包安装 MySQL &#xff0c;则服务器启动和关闭由 systemd 管理&#xff1a; RPM …

时间序列-预测-模型-2020:Informer【比Transformer更有效的长时间序列预测】【在对性能影响不大的前提下降低复杂度】

摘要 时序预测这个领域的工作与很多其他领域类似,我们可以按“深度学习”方法的引入作为分界线。在此之前的方法是传统的时序建模方法,比如移动平均、自回归、以及结合差分的ARIMA模型等,有着悠久的历史以及基于理论基础的可解释性。但是,这类方法一般要求时间序列是平稳的…

视频转文字怎么弄?建议收藏这些方法

小伙伴们在闲暇之余&#xff0c;会不会通过一些网课的学习&#xff0c;来提高自己呢&#xff1f;有时我们网课学习来不及做笔记&#xff0c;但是重复观看又比较麻烦&#xff0c;这时我们就可以通过将视频转换成文字&#xff0c;这样就能够清楚明了的知道视频的讲解内容了。那你…

springcloud整合Hystrix

作用 1、服务降级 触发情况&#xff1a;程序运行异常、超时、服务熔断触发服务降级、线程池/信号量打满也会触发服务降级 2、服务熔断 直接拒绝访问&#xff0c;即使有正确的访问也会短路 3、服务限流 排队有序进行 构建服务 1、建module provider-hystrix-payment8001 2、改…

mac 好用的ps修图软件 Pixelmator Pro

Pixelmator Pro Pixelmator Pro 是一款任何人都可以使用的专业图像编辑工具。Pixelmator Pro旨在使每个人都可以使用最强大的专业图像编辑工具。拥有大量用于编辑和修饰照片&#xff0c;创建图形设计&#xff0c;绘画&#xff0c;绘制矢量图形以及添加令人惊叹的效果的工具&…

sdl 渲染旋转视频的方法

文章目录前言一、如何实现&#xff1f;1、计算边框大小2、计算缩放大小3、逆运算视频宽高二、完整代码三、使用示例总结前言 一般情况下播放视频时不需要旋转&#xff0c;但是如果是移动端录制的视频有时会出现rotate参数&#xff0c;且视频宽高也是互换的&#xff0c;如果直接…

为什么使用MQ?RabbitMQ概念

个人博客地址&#xff1a; http://xiaohe-blog.top/ 文章目录1. MQ基本概念1.1 MQ简述1.2 MQ的优势1.3 MQ的劣势2. RabbitMQ基本概念2.1 RabbitMQ特点2.2 AMQP协议1. MQ基本概念 1.1 MQ简述 MQ 全称 &#xff1a;Message Queue&#xff08;消息队列&#xff09;&#xff0c;是…

音效、配乐素材网站,免费商用

视频剪辑没素材&#xff1f;找不到热门音效&#xff1f;找不到好听的配乐&#xff1f; 有了这几个网站&#xff0c;承包你的所有音效、配乐&#xff0c;重点是免费&#xff01;&#xff01;&#xff01;1、菜鸟图库 https://www.sucai999.com/audio.html?vNTYwNDUx菜鸟图库网&…

【猿如意】如何在mac上搭建QT环境

作为一个代码菜鸡&#xff0c;平时主要用windows或者linux进行开发&#xff0c;但是家里有一个mac&#xff0c;平时要搭环境要找半天就很费劲。今天终于发现一个好用的平台&#xff0c;常用的开发工具都有惹。真香&#xff01; 什么是猿如意&#xff1f; 猿如意是一款面向开发…

[附源码]Nodejs计算机毕业设计基于的餐厅管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

如何注册网站?网站注册费用多少?

很多企业或者公司都会考虑注册自己的网站&#xff0c;那么如何注册网站呢&#xff1f;网站注册费用多少呢&#xff1f;具体来说注册网站是包含注册域名和制作网站&#xff0c;下面一同为大家解答如何注册网站。 一、注册域名 一个网站是必须要有域名才能访问&#xff0c;注册可…

一个 MySQL 隐式转换的坑,差点把服务器整崩溃了

本来是一个平静而美好的下午&#xff0c;其他部门的同事要一份数据报表临时汇报使用&#xff0c;因为系统目前没有这个维度的功能&#xff0c;所以需要写个SQL马上出一下&#xff0c;一个同事接到这个任务&#xff0c;于是开始在测试环境拼装这条 SQL&#xff0c;刚过了几分钟&…

职场社交app开发,迎合市场发展需求

互联网时代的到来&#xff0c;让人们在网络上花费的时间越来越多&#xff0c;依赖性也越来越大&#xff0c;我们的生活发生了很大的变化。一个人从出生开始就要面对这个复杂的社会&#xff0c;需要和各种各样的人去交流相处&#xff0c;当我们进入职场之后社交更是变成一种刚需…

【电巢】最新进展 深圳13家国企和民企入局,打造全球电子元器件集散中心

前 言 日前&#xff0c;电子元器件和集成电路国际交易中心创立大会在深圳召开。电巢获悉&#xff0c;该交易中心将于12月底正式揭牌&#xff0c;近期启动试运行&#xff0c;并在试运行期间开启线上交易。 根据此前国家发改委、商务部发布的《关于深圳建设中国特色社会主义先…

[附源码]Python计算机毕业设计高校请假管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…