递增子序列【回溯】

news2024/12/23 22:23:54
  1. 递增子序列
    给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。

数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。
在这里插入图片描述

class Solution {
    LinkedList<Integer> path = new LinkedList<>();
    List<List<Integer>> result = new ArrayList<>();
    public List<List<Integer>> findSubsequences(int[] nums) {
        backTrack(nums, 0);
        return result;
    }
    public void backTrack(int[] nums, int startIndex) {
        HashSet<Integer> hs = new HashSet<>();//记录数层上的数据是否用已经被用过,需要在for循环外面定义
        if (path.size() > 1) result.add(new ArrayList<>(path));//注意判断条件是path.size()[链表]大于1

        for(int i = startIndex; i < nums.length; i++) {//数组使用length计算长度,用于保证不越界

            if((!path.isEmpty() && path.getLast() > nums[i]) || hs.contains(nums[i]))  {
            continue;//路径path不为空,才进行path最后一个元素与当前元素的比较
            }
        
            path.add(nums[i]);
            hs.add(nums[i]);//将当前元素加入到hashset中,用于记录已经出现过的数据
            backTrack(nums, i + 1);
            path.removeLast();
        }
    }
}

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

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

相关文章

堆中分配二维数组初始化排序

方法一&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h> int getmem(char *** parry,int *depth,int *len){ int mydepth *depth; int mylen *len; char ** myarry (char **)malloc(mydepth*sizeof(char*)); for(int i0;i<…

库存预占架构升级方案设计-交易库存中心 | 京东物流技术团队

背景介绍 伴随物流行业的迅猛发展&#xff0c;一体化供应链模式的落地&#xff0c;对系统吞吐、系统稳定发出巨大挑战&#xff0c;库存作为供应链的重中之重表现更为明显。近三年数据可以看出&#xff1a; 接入商家同比增长37.64%、货品种类同比增长53.66% 货品数量同比增长4…

临时功能展示数据库表未添加主键导致Excel导入数据重复

Java对Excel等文档解析上传到数据库或服务器问题记录 临时功能展示数据库表未添加主键导致Excel导入数据重复 如图,问题发现是因为Excel表中只有两千多条数据但导入数据库后却有五千多条,当时在代码中疯狂找原因也未果,最后尝试给数据库添加主键解决问题! 去除重复数据 总条…

jdk8对象列表使用stream流基于某个字段(或某些条件)实现去重

直接上代码&#xff1a;(实现了去重加排序的效果) //换行只是为了方便看 userList.stream().collect(Collectors.collectingAndThen(Collectors .toCollection(() -> new TreeSet<>(Comparator.comparing(User::getAge))), ArrayList::new));comparing&#xff08;比…

谁偷走了我的存储容量?预留空间OP参上!

大家好&#xff0c;我是五月。 前言 不知道你有没有发现&#xff0c;每当买回来一块U盘&#xff0c;插入电脑发现永远比所标的容量小。 到底是谁偷走了我的容量&#xff1f; 真凶就是预留空间&#xff08;Over Provisioning&#xff09;&#xff0c;简称OP。 预留空间OP是…

DSP,国产C2000,数字电源,电机专用,国产经典之作,新品上市

1、替代TI 的 TMS320F280049 2、独立双核&#xff0c;主频400MHz 3、单精度浮点运算&#xff0c;三角函数运算 4、Flash 1MB&#xff0c;SRAM 1MB 5、12bit ADC&#xff0c;采样率 3.45MSPS 6、16个高分辨率 ePWM 优点&#xff1a; 1、主频400MHz&#xff0c;运算能力强 2、独…

攻防世界-ext3

原题 解题思路 下载下来的文件解压就可以看到非常多的文件夹&#xff0c;直接搜索flag 明显用base64加密了&#xff1a;解码工具

Lazada为什么成为卖家新宠?趋势如何?

其实跨境销售是网络发达以来,很多国内的商家都在突破的点。只有真正打开自己的市场,这样才可以让销售能够直线上升。如果永远在国内进行销售,那么不仅仅会增加难度,并且也很有可能无法打开自己的销售思路,导致最终在时代的潮流中没落。那么如果想要进行跨境销售,渠道就是相当重…

交叉编译liblzma:64位版本

xmlIO.c:40:10: 致命错误&#xff1a; lzma.h&#xff1a;没有那个文件或目录40 | #include <lzma.h>在交叉编译libxml时&#xff0c;报错 为解决这个问题&#xff0c;编译liblzma 网址https://tukaani.org/xz/ 解压&#xff1a; tar jxvf xz-5.2.12.tar.bz2执行&#…

Java基础之IO流File类创建及删除

1.File类概述及构造方法 2.File类创建功能 文件创建成功&#xff01; 如果文件不存在&#xff0c;就创建文件&#xff0c;并返回true 如果文件存在&#xff0c;就不创建文件&#xff0c;并返回false 如果文件夹不存在&#xff0c;就创建文件夹&#xff0c;并返回true 如果文件…

树莓派3B安装64位操作系统

树莓派3B安装Ubuntu MATE_树莓派3b 安装ubuntu_雨田大大的博客-CSDN博客https://blog.csdn.net/lsjackson13/article/details/92423694?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-92423694-blog-80716098.235%5Ev38%5Ep…

电路学习+硬件每日学习十个知识点(40)23.8.20 (希腊字母读音,阶跃信号和冲激信号的关系式,信号的波形变换,信号的基本运算,卷积积分,卷积和)

文章目录 1.信号具有时间特性和频率特性。2.模拟转数字&#xff0c;抽样、量化、编码3.阶跃信号和冲激信号4.信号的波形变换&#xff08;时移、折叠、尺度变换&#xff09;5.信号的基本运算&#xff08;加减、相乘、微分与积分、差分与累加&#xff09;5.1 相加减5.2 相乘5.3 微…

Gowin FPGA工程modelsim功能仿真和时序仿真

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 Gowin FPGA工程的modelsim功能仿真和时序仿真 前言功能仿真时序仿真&#xff08;后仿真&#xff09; 前言 下面记录一下modelsim功能仿真和时序仿真的操作步骤&#xff0c;学…

持续集成与持续交付:现代软件测试的变革之路

引言 在数字化时代&#xff0c;软件开发的速度和复杂性都在不断增加。为了满足市场的需求&#xff0c;企业需要更快、更高效地交付高质量的软件产品。在这样的背景下&#xff0c;持续集成与持续交付&#xff08;CI/CD&#xff09;成为了软件开发和测试的核心实践。 软件开发的…

Android 之 Vibrator (振动器)

本节引言&#xff1a; 本节我们介绍的是Vibrator(振动器)&#xff0c;是手机自带的振动器&#xff0c;别去百度直接搜针振动器&#xff0c;因为 你的搜索结果可能是如图所示的神秘的道具&#xff0c;或者其他神秘道具&#xff1a; 嗯&#xff0c;说回本节介绍的Vibrator&#…

电路学习+硬件每日学习十个知识点(39)23.8.19 (电路模型,电感,电容)

文章目录 1.电力线路和通信线路2.实际电路的元器件3.集总参数元件&#xff08;类似于物理的质点&#xff09;4.电子电路习惯画法5.电感元件6.电容元件 1.电力线路和通信线路 电路的基本功能可分为两大类&#xff1a;一类电路进行能量的传输、分配和转换&#xff0c;如电力线路…

jdk生成jre供javaFx使用

文章目录 前言一、Jdk二、使用步骤1.进入到jdk目录下2.地址栏输入cmd3.执行生成命令4.注意 总结 前言 JavaFx开发桌面程序&#xff0c;发布给其它人时候需要附带jre 一、Jdk 自备jdk8、jdk11、jdk17等等 二、使用步骤 1.进入到jdk目录下 2.地址栏输入cmd 3.执行生成命令 b…

Error: Flash Download failed - “Cortex-M7“

选择对应FLM文件加上即可。 具体可参考&#xff1a; https://www.sunev.cn/embedded/669.html https://zhuanlan.zhihu.com/p/487664063

【Git】学习总结

【Git】学习总结 【一】安装【二】Git克隆项目代码【1】idea下载git项目【2】创建新的分支【3】新建的分支推送到远程【4】合并最新代码到主分支【5】切换分支 【三】提交本地项目到远程&#x1f680;1. 配置 Git&#x1f680;2. 创建项目远程仓库&#x1f680;3. 初始化本地仓…

江西萍乡能源石油化工阀门三维扫描3d测量抄数建模-CASAIM中科广电

长期以来&#xff0c;石油天然气、石油石化、发电和管道输送行业在环保、健康和安全保障方面一直承受着巨大的压力&#xff0c;他们必须确保相关规程在各项作业中得到全面贯彻。 阀门作为流体管道运输中的组成部分&#xff0c;其装配密封度是保证流体运输安全的重要一环&#…