DAY29| 491.递增子序列 ,46.全排列 ,47.全排列II

文章目录

    • 491.递增子序列
    • 46.全排列
    • 47.全排列II

491.递增子序列

文字讲解:递增子序列

视频讲解:递增子序列

**状态:这题看了文字讲解才AC,掌握了如何在回溯里通过Set集合来对同层节点去重

思路:

代码:

class Solution {List<List<Integer>> result = new ArrayList<>();LinkedList<Integer> tempList = new LinkedList<>();public List<List<Integer>> findSubsequences(int[] nums) {backTracking(nums, 0);return result;}//本题的关键在于,同层不能有重复元素,当前层的节点不能大于上一层的值public void backTracking(int[] nums, int startIndex) {if (startIndex>=nums.length) {return;}//借助set集合去重HashSet hs = new HashSet();for (int i = startIndex; i < nums.length; i++) {if ((!tempList.isEmpty() && tempList.get(tempList.size()-1) > nums[i]) || hs.contains(nums[i])) {continue;}hs.add(nums[i]);tempList.offer(nums[i]);if (tempList.size()>1) {result.add(new ArrayList<>(tempList));}backTracking(nums, i+1);tempList.pollLast();}}
}

46.全排列

文字讲解:全排列

视频讲解:全排列

状态:做完组合类的题,这题好简单

思路:

代码:

class Solution {List<List<Integer>> result = new ArrayList<>();LinkedList<Integer> tempList = new LinkedList<>();boolean[] usedArr;public List<List<Integer>> permute(int[] nums) {this.usedArr = new boolean[nums.length];for (int i = 0; i < this.usedArr.length; i++) {this.usedArr[i] = false;}backTracking(nums);return result;}public void backTracking(int[] nums) {if (tempList.size()==nums.length) {//收集result.add(new ArrayList<>(tempList));return;}for (int i = 0; i < nums.length; i++) {if (usedArr[i]) {continue;}usedArr[i]=true;tempList.offer(nums[i]);backTracking(nums);tempList.pollLast();usedArr[i]=false;}}
}

47.全排列II

文字讲解:全排列II

视频讲解:全排列

状态:将前两题的思路整合,这题ok

思路:

代码:

class Solution {List<List<Integer>> result = new ArrayList<>();LinkedList<Integer> tempList = new LinkedList<>();boolean[] used;public List<List<Integer>> permuteUnique(int[] nums) {Arrays.sort(nums);this.used = new boolean[nums.length];for (int i = 0; i < used.length; i++) {used[i] = false;}backTracking(nums);return result;}public void backTracking(int[] nums) {if (tempList.size()==nums.length) {result.add(new ArrayList<>(tempList));return;}HashSet<Integer> hs = new HashSet();for (int i = 0; i < nums.length; i++) {if (used[i] || hs.contains(nums[i])) {continue;}hs.add(nums[i]);used[i] = true;tempList.offer(nums[i]);backTracking(nums);tempList.pollLast();used[i] = false;}}
}

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

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

相关文章

HTML5漫画风格个人介绍源码

源码介绍 HTML5漫画风格个人介绍源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;重定向这个界面 效果截图 源码下载 HTML5漫画风格…

设计模式———单例模式

单例也就是只能有一个实例&#xff0c;即只创建一个实例对象&#xff0c;不能有多个。 可能会疑惑&#xff0c;那我写代码的时候注意点&#xff0c;只new一次不就得了。理论上是可以的&#xff0c;但在实际中很难实现&#xff0c;因为你无法预料到后面是否会脑抽一下~~因此我们…

「Python大数据」数据采集-某东产品数据评论获取

前言 本文主要介绍通过python实现数据采集、脚本开发、办公自动化。数据内容范围:星级评分是1-3分、获取数据页面是前50页。 友情提示 法律分析:下列三种情况,爬虫有可能违法,严重的甚至构成犯罪: 爬虫程序规避网站经营者设置的反爬虫措施或者破解服务器防抓取措施,非法…

arm 作业 24/4/17

1、主机向从机发送多个字节的数据 主机发送起始信号 主机发送8bit从机地址1bit写标志&#xff08;0&#xff09; 从机回应应答信号 主机发送8bit从机的寄存器地址 从机回应应答信号 主机发送8bit数据 从机回应应答 主机发送8bit数据 从机回应应答 ………… 主机发起…

【Pytorch】Conv1d

conv1d 先看看官方文档 再来个简单的例子 import torch import numpy as np import torch.nn as nndata np.arange(1, 13).reshape([1, 4, 3]) data torch.tensor(data, dtypetorch.float) print("[data]:\n", data) conv nn.Conv1d(in_channels4, out_channels1…

二叉树前序遍历​​​​​​​到底部为何会返回到顶部?函数调用栈

前序遍历是一种二叉树的遍历方式&#xff0c;其遍历顺序是先访问根节点&#xff0c;然后递归地遍历左子树&#xff0c;最后递归地遍历右子树。具体来说&#xff0c;前序遍历的顺序是根节点->左子树->右子树。 前序遍历到底部为何会返回到顶部是因为在进行递归遍历时&…

启明智显应用分享|基于ESP32-S3方案的SC01PLUS彩屏与chatgpt融合应用DEMO

今天将带大家真实体验科技与智慧的完美融合——SC01PLUS与ChatGPT的深度融合DEMO效果呈现。 彩屏的清晰显示与ChatGPT的精准回答&#xff0c;将为我们带来前所未有的便捷与高效。 SC01PLUS是启明智显基于ESP32-S3打造的一款3.5寸480*320分辨率的彩屏产品&#xff0c;您可以看…

32、模拟队列

模拟队列 题目描述 实现一个队列&#xff0c;队列初始为空&#xff0c;支持四种操作&#xff1a; (1) “push x” – 向队尾插入一个数x&#xff1b; (2) “pop” – 从队头弹出一个数&#xff1b; (3) “empty” – 判断队列是否为空&#xff1b; (4) “query” – 查询…

【Git】git命令大全(持续更新)

本文架构 0.描述git简介术语 1.常用命令2. 信息管理新建git库命令更改存在库设置获取当前库信息 3.工作空间相关将工作空间文件添加到缓存区&#xff08;增&#xff09;从工作空间中移除文件&#xff08;删&#xff09;撤销提交 4.远程仓库相关同步远程仓库分支 &#xff08;持…

高版本Android studio 使用Markdown无法预览(已解决)

目录 概述 解决方法 概述 本人升级Android studio 当前版本为Android Studio Jellyfish | 2023.3.1 RC 2导致Markdown无法预览。 我尝试了很多网上的方法都无法Markdown解决预览问题&#xff0c;包括升级插件、安装各种和Markdown相关的插件及使用“Choose Boot Java Runtim…

yolov5 自训练pt模型转onnx,再转rknn,并部署 注意事项

yolov5 部署到rk3588 教程来自 yolov5训练pt模型并转换为rknn模型&#xff0c;部署在RK3588开发板上——从训练到部署全过程_yolov5 rknn-CSDN博客 1.通过android studio 部署代码在rk3588板子上运行代码 项目来源 rknn-toolkit2/rknpu2/examples/rknn_yolov5_android_apk…

使用AWK进行文本处理

awk 的基本概念 awk 是一种强大的文本处理语言&#xff0c;广泛用于模式匹配和数据提取。这种编程语言设计用于对文本文件进行操作&#xff0c;尤其适用于格式化的文本&#xff0c;如 CSV 或空格分隔的表格数据。下面详细介绍 awk 的一些基本概念&#xff1a; 1. 记录和字段 …

一文了解OCI标准、runC、docker、contianerd、CRI的关系

docker和contanerd都是流行的容器运行时&#xff08;container runtime&#xff09;&#xff1b;想讲清楚他们两之间的关系&#xff0c;让我们先从runC和OCI规范说起。 一、OCI标准和runC 1、OCI&#xff08;open container initiative&#xff09; OCI是容器标准化组织为了…

利用动态规划优化10年投资回报:策略、证明与算法分析

利用动态规划优化10年投资回报&#xff1a;策略、证明与算法分析 a. 存在最优投资策略的证明b. 最优子结构性质的证明c. 最优投资策略规划算法设计d. 新限制条款下最优子结构性质的证明 在面对投资策略规划问题时&#xff0c;我们的目标是在10年后获得最大的回报。Amalgamated投…

Java上传文件到服务器

1、使用jsch <!--sftp文件上传--><dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version></dependency> 2、配置类 package com.base.jsch;import lombok.Data; import o…

数据结构与算法-哈希表

哈希表 哈希表&#xff08;hash table&#xff09;&#xff0c;又称散列表&#xff0c;它通过建立键 key 与值 value 之间的映射&#xff0c;实现高效的元素查询。具体而言&#xff0c;我们向哈希表中输入一个键 key &#xff0c;则可以在 时间内获取对应的值 value 。 1.基础…

牛客 NC205 跳跃游戏(三)【中等 贪心 Java,Go,PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/14abdfaf0ec4419cbc722decc709938b 思路 参考答案Java import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可*** …

搜维尔科技:Manus Xsens Metagloves新一代手指捕捉

Manus Xsens Metagloves新一代手指捕捉 搜维尔科技&#xff1a;Manus Xsens Metagloves新一代手指捕捉

Go 单元测试之Mysql数据库集成测试

文章目录 一、 sqlmock介绍二、安装三、基本用法四、一个小案例五、Gorm 初始化注意点 一、 sqlmock介绍 sqlmock 是一个用于测试数据库交互的 Go 模拟库。它可以模拟 SQL 查询、插入、更新等操作&#xff0c;并且可以验证 SQL 语句的执行情况&#xff0c;非常适合用于单元测试…

基于SpringBoot+Vue社区医院服务平台(源码+文档+包运行)

一.系统概述 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了社区医院信息平台的开发全过程。通过分析社区医院信息平台管理的不足&#xff0c;创建了一个计算机管理社区医院信息平台的方案。文章介绍了社区医院信息…