力扣46. 全排列

Problem: 46. 全排列

文章目录

  • 题目描述
  • 思路及解法
  • 复杂度
  • Code

题目描述

在这里插入图片描述在这里插入图片描述

思路及解法

回溯可以理解为是在对一个多叉树的操作

1.回溯结束条件:当决策路径的长度等于nums数组的长度时,将当前的结果添加到二维结果集res中;
2.每一次决策的选择处理:每次我们先查找当前决策路径中是否存在nums[i],若存在则跳过,直至不存在;
3.先将当前的路径上的值添加到决策路径中,并开始下一层决策,最后将当前决策从决策路径中去除;

复杂度

时间复杂度:

O ( N × N ! ) O(N \times N!) O(N×N!);其中 N N N为数组nums的长度

空间复杂度:

O ( N ) O(N) O(N)

Code

class Solution {//Recode the resultvector<vector<int>> res;
public:/*** Full permutation* * @param nums An array to be fully arranged* @return vector<vector<int>>*/vector<vector<int>> permute(vector<int> &nums) {vector<int> track;backtrack(nums, track);return res;}/*** Implementation of backtracking function** @param nums An array to be fully arranged* @param track Selection path*/void backtrack(vector<int> &nums, vector<int> track) {if (track.size() == nums.size()) {res.push_back(track);return;}for (int i = 0; i < nums.size(); ++i) {if (find(track.begin(), track.end(), nums[i]) != track.end()) {continue;}//Chosetrack.push_back(nums[i]);backtrack(nums, track);track.pop_back();}}
};

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

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

相关文章

javaScript链式调用的简单实现

链式调用在JavaScript很常见&#xff0c;比如jQuery、Promise和其它的插件等&#xff0c;都是使用的链式调用。链式调用可以让我们在进行连续操作时&#xff0c;写出更简洁的代码。 链式调用它允许你在单个对象上连续调用多个方法&#xff0c;每个方法的返回值都是调用它的那个…

Qt 图形视图 /基于Qt示例DiagramScene解读图形视图框架

文章目录 概述从帮助文档看示例程序了解程序背景/功能理清程序概要设计 分析图形视图的协同运作机制如何嵌入到普通Widget程序中&#xff1f;形状Item和文本Item的插入和删除&#xff1f;连接线Item与形状Item的如何关联&#xff1f;如何绘制ShapeItem间的箭头线&#xff1f; 下…

Java文件大小转换的两种方式

小伙伴们好&#xff0c;欢迎关注&#xff0c;一起学习&#xff0c;无限进步 在程序开发的过程中&#xff0c;文件的大小在视图呈现和数据库存储的过程不一致怎么转换呢 文件大小的单位&#xff0c;在计算机中&#xff0c;文件大小通常使用字节&#xff08;byte&#xff09;作为…

穿越半个世纪,探索中国数据库的前世今生

引言 在数字化潮流席卷全球的今天&#xff0c;数据库作为 IT 技术领域的“活化石”&#xff0c;已成为数字经济时代不可或缺的基础设施。那么&#xff0c;中国的数据库技术发展经历了怎样的历程&#xff1f;我们是如何在信息技术的洪流中逐步建立起自己的数据管理帝国的呢&…

Hadoop大数据应用:HDFS 集群节点扩容

目录 一、实验 1.环境 2.HDFS 集群节点扩容 二、问题 1.rsync 同步报错 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 主机架构软件版本IP备注hadoop NameNode &#xff08;已部署&#xff09; SecondaryNameNode &#xff08;已部署&#xff09; Resourc…

Java并发编程学习笔记:synchronized

Java并发编程学习笔记&#xff1a;synchronized 一、synchronized关键字实例方法静态方法代码块 二、底层原理三、锁的升级锁的状态锁升级 一、synchronized关键字 实例方法 作用在类的普通方法上&#xff0c;锁的是当前对象实例。构造方法本身是线程安全的&#xff0c;不能使…

海川润泽AI机器视觉仪系列产品,助推“人工智能+”打开新质生产力的大门

3月5日&#xff0c;第十四届全国人民代表大会第二次会议开幕。国务院总理李强在政府工作报告&#xff0c;提出大力推进现代化产业体系建设&#xff0c;加快发展新质生产力。深入推进数字经济创新发展&#xff0c;制定支持数字经济高质量发展政策&#xff0c;积极推进数字产业化…

零基础自学C语言|动态内存管理

✈为什么要有动态内存分配 我们已经掌握的内存开辟方式有&#xff1a; int a 0;//在栈空间上开辟四个字节char arr[10] { 0 };//在栈空间上开辟10个字节的连续空间但是上述的开辟空间的方式有两个特点&#xff1a; 空间开辟大小是固定的。数组在申明的时候&#xff0c;必须…

【开源】SpringBoot框架开发公司货物订单管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 客户管理模块2.2 商品维护模块2.3 供应商管理模块2.4 订单管理模块 三、系统展示四、核心代码4.1 查询供应商信息4.2 新增商品信息4.3 查询客户信息4.4 新增订单信息4.5 添加跟进子订单 五、免责说明 一、摘要 1.1 项目…

Cap2:Pytorch转TensorRT(上:Pytorch->ONNX)

文章目录 1、pytorch导出onnx模型2、使用onnxruntime推理onnx模型3、精度对齐4、总结 深度学习框架种类繁多&#xff0c;想实现任意框架之间的模型转换是一件困难的事情。但现在有一个中间格式ONNX&#xff0c;任何框架模型都支持转为ONNX&#xff0c;然后也支持从ONNX转为自身…

案例分析篇00-【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-先导篇)

专栏系列文章&#xff1a; 2024高级系统架构设计师备考资料&#xff08;高频考点&真题&经验&#xff09;https://blog.csdn.net/seeker1994/category_12593400.html 案例分析篇01&#xff1a;软件架构设计考点架构风格及质量属性 案例分析篇11&#xff1a;UML设计考…

Java 常用注解

一、较不熟悉 1、@MappedJdbcTypes(JdbcType.VARCHAR) MyBatis 框架中的一个注解,用于指定某个字段或方法参数与数据库中的 JDBC 类型之间的映射关系。通常作用在实体类属性或者参数上。 如下标识username字段映射到数据库中的VARCHAR属性。 public interface UserMapper {@Se…

KY199 查找

描述&#xff1a; 输入数组长度 n 输入数组 a[1…n] 输入查找个数m 输入查找数字b[1…m] 输出 YES or NO 查找有则YES 否则NO 。 输入描述&#xff1a; 输入有多组数据。 每组输入n&#xff0c;然后输入n个整数&#xff0c;再输入m&#xff0c;然后再输入m个整数&#xff08;1&…

疫情网课管理系统|基于springboot框架+ Mysql+Java+Tomcat的疫情网课管理系统设计与实现(可运行源码+数据库+设计文档+部署说明)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 ​编辑 学生功能模块 管理员功能 教师功能模块 系统功能设计 数据库E-R图设计 lun…

人工智能入门之旅:从基础知识到实战应用(五)

一、人工智能实战项目与案例分析 1. AI入门项目电影评论情感分析实战 典型的AI入门实战项目&#xff0c;比如电影评论情感分析&#xff0c;是一个非常适合初学者的项目&#xff0c;因为它简单易懂&#xff0c;同时涵盖了自然语言处理&#xff08;NLP&#xff09;领域的一些基…

Ubuntu上搭建TFTP服务

Ubuntu上搭建TFTP服务 TFTP服务简介搭建TFTP服务安装TFTP服务修改配置文件 重启服务 TFTP服务简介 TFTP是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议&#xff0c;适用于开销不大、不复杂的应用场合。TFTP协议专门为小文件传输而设计&#xff0c;只…

虚拟游戏理财 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 在一款虚拟游戏中生活&#xff0c;你必须进行投资以增强在虚拟游戏中的资产以免被淘汰出局。 现有一家Bank&#xff0c;它提供有若干理财产品m&#xff0c;风险及…

line_profiler逐行分析代码时间

最近model训练有点瓶颈&#xff0c;GPU的利用率总是很低。所以看看能不能使用line_profiler来发现问题。 使用方式&#xff1a; 确保 line_profiler 正确安装&#xff1a; pip install line_profiler在需要分析的函数加上修饰器&#xff1a; from line_profiler import prof…

【PHP安全】PHP伪协议

PHP伪协议&#xff1a; file:// #访问本地文件系统http:// #访问HTTPs网址ftp:// #访问ftp URLphp:// #访问输入输出流zlib:// #压缩流data:// #数据&#xff08;RFC 2397&#xff09;ssh2:// #security shell2expect:// #处理交互式的流glob:// #查找匹配的文件路径phar:// #P…

33.使用ORDER BY排序

用ORDER BY子句排序行 ASC&#xff1a;升序排序&#xff0c;默认 DESC&#xff1a;降序排序 ORDER BY 子句在SELECT 语句的最后 在一个不明确的查询结果中排序返回的行。ORDER BY子句用于排序。如果使用了ORDER BY子句&#xff0c;它必须位于SQL语句的最后。 SELECT 语句的…