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

代码随想录刷题笔记-Day27

1. 全排列

46. 全排列icon-default.png?t=N7T8https://leetcode.cn/problems/permutations/

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

示例 1:

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

示例 2:

输入:nums = [0,1]
输出:[[0,1],[1,0]]

示例 3:

输入:nums = [1]
输出:[[1]]

解题思路

全排列的难点在于需要回头取数,而且还要判定是否已经取过了,可以考虑使用一个bool数组来区分是否在当前排列取过。

代码

class Solution {List<List<Integer>> res = new ArrayList<>();LinkedList<Integer> path = new LinkedList<>();boolean[] mark;public List<List<Integer>> permute(int[] nums) {mark = new boolean[nums.length];Arrays.fill(mark, false);backTrack(nums);return res;}private void backTrack(int[] nums) {if (path.size() == nums.length) {res.add(new ArrayList(path));return;}for (int i = 0; i < nums.length; i++) {if (mark[i])continue;path.add(nums[i]);mark[i] = true;backTrack(nums);path.removeLast();mark[i] = false;}}
}

2. 全排列 II

47. 全排列 IIicon-default.png?t=N7T8https://leetcode.cn/problems/permutations-ii/给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。

示例 1:

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

示例 2:

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

解题思路

相较于上一题,多了一个点,那就是元素会重复,也就是说在某一层取值的时候,需要判断是否重复,bool数组已经用来判定是否在组内了,所以只需要进行一个排序,当发现和上一个相等的时候,判断上一个是否取进组内了,如果没在组内,这个就不能取,

代码

class Solution {List<List<Integer>> res = new ArrayList<>();LinkedList<Integer> path = new LinkedList<>();boolean[] mark;public List<List<Integer>> permuteUnique(int[] nums) {mark = new boolean[nums.length];Arrays.fill(mark, false);Arrays.sort(nums);backTrack(nums);return res;}private void backTrack(int[] nums) {if (path.size() == nums.length) {res.add(new ArrayList(path));return;}for (int i = 0; i < nums.length; i++) {if (mark[i])continue;if (i > 0 && !mark[i - 1] && nums[i - 1] == nums[i])continue;path.add(nums[i]);mark[i] = true;backTrack(nums);path.removeLast();mark[i] = false;}}
}

相关文章:

代码随想录刷题笔记-Day27

1. 全排列 46. 全排列https://leetcode.cn/problems/permutations/ 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],…...

【小沐学GIS】QGIS安装和入门使用

文章目录 1、简介2、下载和安装3、使用3.1 XYZ Tiles3.2 WMS / WMTS3.3 GeoJson文件加载 4、在线资源结语 1、简介 QGIS是一款开源地理信息系统。该项目于2002年5月诞生&#xff0c;同年6月作为SourceForge上的一个项目建立。QGIS目前运行在大多数Unix平台、Windows和macOS上。…...

黑马程序员——接口测试——day03——Postman断言、关联、参数化

目录&#xff1a; Potman断言 Postman断言简介Postman常用断言 断言响应状态码断言包含某字符串断言JSON数据Postman断言工作原理Postman关联 简介实现步骤核心代码创建环境案例1案例2Postman参数化 简介数据文件简介编写数据文件 CSV文件JSON文件导入数据文件到postman读取数…...

Unreal触屏和鼠标控制旋转冲突问题

Unreal触屏和鼠标控制旋转冲突问题 鼠标控制摄像机旋转添加Input轴计算旋转角度通过轴事件控制旋转 问题和原因问题原因 解决办法增加触摸控制旋转代码触屏操作下屏蔽鼠标轴响应事件 鼠标控制摄像机旋转 通过Mouse X和Mouse Y控制摄像机旋转。 添加Input轴 计算旋转角度 通过…...

Vins-Moon配准运行

Vins-Moon运行 求助&#xff01;&#xff01;&#xff01;源码地址电脑配置环境配置编译Kitti数据集制作IMU时间戳问题 适配Kitti数据集运行结果Euroc数据集kitti数据集 evo评估&#xff08;KITTI数据&#xff09;输出轨迹(tum格式)结果 求助&#xff01;&#xff01;&#xff…...

MSCKF3讲:后端理论推导(上)

MSCKF3讲&#xff1a;后端理论推导&#xff08;上&#xff09; 文章目录 MSCKF3讲&#xff1a;后端理论推导&#xff08;上&#xff09;1 MSCKF中的状态变量① IMU状态:② cam0状态&#xff1a;③ IMU和cam0间状态关系 2 微分方程递推&#xff08;数值解&#xff09;3 IMU状态预…...

群控代理IP搭建教程:打造一流的网络爬虫

目录 前言 一、什么是群控代理IP&#xff1f; 二、搭建群控代理IP的步骤 1. 获取代理IP资源 2. 配置代理IP池 3. 选择代理IP策略 4. 编写代理IP设置代码 5. 异常处理 三、总结 前言 群控代理IP是一种常用于网络爬虫的技术&#xff0c;通过使用多个代理IP实现并发请求…...

【IO流系列】字符流练习(拷贝、文件加密、修改文件数据)

字符流练习 练习1&#xff1a;文件夹拷贝1.1 需求1.2 代码实现1.3 输出结果 练习2&#xff1a;文件加密与解密2.1 需求2.2 代码实现2.3 输出结果 练习3&#xff1a;修改文件数据&#xff08;常规方法&#xff09;3.1 需求3.2 代码实现3.3 输出结果 练习4&#xff1a;修改文件数…...

华为云磁盘挂载

华为云磁盘挂载 磁盘挂载情况 fdisk -l 2. 查看当前分区情况 df -h 3.给新硬盘添加新分区 fdisk /dev/vdb 4.分区完成&#xff0c;查询所有设备的文件系统类型 blkid 发现新分区并没有文件系统类型&#xff08;type为文件系统具体类型&#xff0c;有ext3,ext4,xfs,iso9660等…...

通过大语言模型理解运维故障:评估和总结

张圣林 南开大学软件学院副教授、博士生导师 第六届CCF国际AIOps挑战赛程序委员会主席 在ATC、WWW、VLDB、KDD、SIGMETRICS等国际会议和JSAC、TC、TSC等国际期刊发表高水平论文50余篇。主持国家自然科学基金项目2项&#xff0c;横向项目13项&#xff08;与华为、字节跳动、腾讯…...

SVN教程-SVN的基本使用

SVN&#xff08;Apache Subversion&#xff09;是一款强大的集中式版本控制系统&#xff0c;它在软件开发项目中扮演着至关重要的角色&#xff0c;用于有效地跟踪、记录和管理代码的演变过程。与分布式系统相比&#xff0c;SVN 的集中式架构使得团队能够更加协同地进行开发&…...

【MySQL】数据查询——DQL基本数据库查询

目录 查询语法1. 查询表中所有的数据行和列&#xff0c;采用“*”符号2. 查询表中指定列的数据。3. 在查询中使用别名&#xff0c;使用“AS”关键字。4. 在查询中使用常量列&#xff1a;如果需要将一些常量的默认信息添加到输出结果中&#xff0c;以方便统计或计算。可以使用常…...

机器人持续学习基准LIBERO系列9——数据集轨迹查看

0.前置 机器人持续学习基准LIBERO系列1——基本介绍与安装测试机器人持续学习基准LIBERO系列2——路径与基准基本信息机器人持续学习基准LIBERO系列3——相机画面可视化及单步移动更新机器人持续学习基准LIBERO系列4——robosuite最基本demo机器人持续学习基准LIBERO系列5——…...

uniapp中canvas的基础使用

canvas简介 canvas是uniapp中提供的一个组件,用于生成自定义的图形界面。通过canvas,我们可以通过JavaScript代码在页面上绘制各种图形和图像。 使用canvas 在页面中添加canvas 首先需要在页面的template中添加一个canvas组件: <template><view><canvas ca…...

中科大计网学习记录笔记(十七):拥塞控制原理 | TCP 拥塞控制

前言&#xff1a; 学习视频&#xff1a;中科大郑烇、杨坚全套《计算机网络&#xff08;自顶向下方法 第7版&#xff0c;James F.Kurose&#xff0c;Keith W.Ross&#xff09;》课程 该视频是B站非常著名的计网学习视频&#xff0c;但相信很多朋友和我一样在听完前面的部分发现信…...

老隋蓝海项目有人盈利的吗?怎么做比较好些呢?

在互联网创业的浪潮中&#xff0c;蓝海项目总是令人心动。老隋&#xff0c;作为一位经验丰富的创业者&#xff0c;近期分享了他所发现的蓝海项目。但不少人可能会有疑问&#xff1a;老隋分享的蓝海项目真的有人盈利了吗?如果真的盈利了&#xff0c;又该怎么做才能确保成功呢?…...

递归与递推(蓝桥杯 c++)

目录 题目一&#xff1a; 代码&#xff1a; 题目二: 代码&#xff1a; 题目三&#xff1a; 代码&#xff1a; 题目四&#xff1a; 代码&#xff1a; 题目一&#xff1a; 代码&#xff1a; #include<iostream> #include<cstring> using namespace std; int …...

ArduinoTFTLCD应用

ArduinoTFTLCD应用 ArduinoTFTLCD应用硬件连接软件导入库显示数字、字符显示汉字方案1方案2 显示图片 总结 ArduinoTFTLCD应用 对于手工喜欢DIY的人来说&#xff0c;Arduino驱动的TFTLCD被很多人使用&#xff0c;此处就总结一下&#xff0c;使用的是VScode的PlatformIO插件驱动…...

《秦时明月》IP新高度:与陕西历史博物馆共同书写文化传承新篇章!

在IP产业风起云涌的今天&#xff0c;如何以创意和匠心为传统文化注入新的活力&#xff0c;成为了摆在每一位文化工作者面前的重要课题。近日&#xff0c;《秦时明月》作为一部深受观众喜爱的国产动画IP&#xff0c;在迎来其十七周年之际&#xff0c;联手陕西历史博物馆&#xf…...

2、事件机制、DOM操作、jquery对尺寸操作、jquery添加和删除

一、事件机制 1、事件源.事件类型(事件处理程序) $(this)中的this不能加引号 $(#box).click(function () {$(this).css(background-color,blue)//点击颜色变为蓝色 })2、事件源.on/bind(事件类型&#xff0c;事件处理程序) $("#box").on(dbclick,function () {$(…...

Qwen-Image-2512-Pixel-Art-LoRA 在嵌入式设备上的应用展望:边缘计算与像素艺术

Qwen-Image-2512-Pixel-Art-LoRA 在嵌入式设备上的应用展望&#xff1a;边缘计算与像素艺术 1. 从云端到指尖&#xff1a;像素艺术的边缘化想象 最近在玩一些像素风的独立游戏&#xff0c;看着那些由简单色块构成的精致画面&#xff0c;我就在想&#xff0c;要是能随时随地、…...

Qwen3.5-35B-AWQ-4bit开源可部署:ARM架构服务器适配可行性验证报告

Qwen3.5-35B-AWQ-4bit开源可部署&#xff1a;ARM架构服务器适配可行性验证报告 1. 模型概述 Qwen3.5-35B-A3B-AWQ-4bit是一款面向视觉多模态理解的开源量化模型&#xff0c;特别针对ARM架构服务器进行了优化适配。该模型在保持高性能的同时&#xff0c;通过4bit量化技术显著降…...

M2LOrder模型赋能软件测试:用例生成与缺陷预测实践

M2LOrder模型赋能软件测试&#xff1a;用例生成与缺陷预测实践 最近和几个做测试的朋友聊天&#xff0c;大家普遍吐槽&#xff0c;现在软件迭代越来越快&#xff0c;留给测试的时间却越来越短。需求文档刚定稿&#xff0c;开发那边代码就快写完了&#xff0c;测试用例还没设计…...

DeepSeek-OCR-2部署教程:如何在多卡服务器上分配显存并行处理批量文档

DeepSeek-OCR-2部署教程&#xff1a;如何在多卡服务器上分配显存并行处理批量文档 1. 项目概述 DeepSeek-OCR-2是一个基于多模态视觉大模型的智能文档解析系统&#xff0c;能够将图像中的文档内容转换为结构化的Markdown格式。与传统OCR技术相比&#xff0c;它不仅能够识别文…...

OpenAlternative移动端优化完全指南:打造完美开源软件目录响应式体验

OpenAlternative移动端优化完全指南&#xff1a;打造完美开源软件目录响应式体验 【免费下载链接】openalternative Curated list of open source alternatives to proprietary software. 项目地址: https://gitcode.com/gh_mirrors/op/openalternative 在移动设备使用率…...

Qwen3.5-2B模型Java开发集成指南:SpringBoot微服务实战案例

Qwen3.5-2B模型Java开发集成指南&#xff1a;SpringBoot微服务实战案例 1. 为什么企业需要AI微服务化 电商平台的商品审核团队每天要处理数万张用户上传的图片&#xff0c;传统人工审核方式不仅效率低下&#xff0c;还容易因疲劳导致误判。某头部电商引入Qwen3.5-2B模型后&am…...

C# 13主构造函数到底怎么用:从语法糖到IL底层,3步写出零反射、零冗余的生产级代码

第一章&#xff1a;C# 13主构造函数到底怎么用&#xff1a;从语法糖到IL底层&#xff0c;3步写出零反射、零冗余的生产级代码 C# 13 的主构造函数&#xff08;Primary Constructors&#xff09;并非简单的语法糖&#xff0c;而是编译器在类型声明阶段就完成参数绑定与字段初始化…...

【论文解读】SparseDriveV2: Scoring is All You Needfor End-to-End Autonomous Driving

https://github.com/swc-17/SparseDriveV2 【摘要】 【引言】 【相关工作】 【方法】 【实验】...

ESP居然能当 DNS 服务器用?内含NCSI欺骗和DNS劫持实现妆

前言 Kubernetes 本身并不复杂&#xff0c;是我们把它搞复杂的。无论是刻意为之还是那种虽然出于好意却将优雅的原语堆砌成 鲁布戈德堡机械 的狂热。平台最初提供的 ReplicaSets、Services、ConfigMaps&#xff0c;这些基础组件简单直接&#xff0c;甚至显得有些枯燥。但后来我…...

位置编码详解

位置编码&#xff08;Positional Encoding, PE&#xff09; 是自然语言处理&#xff08;NLP&#xff09;中&#xff0c;特别是 Transformer 模型架构里的一个核心概念。它的作用是给序列中的每个词&#xff08;Token&#xff09;注入“顺序”或“位置”信息。一、WHY&#xff1…...