算法训练营第29天|LeetCode 491.递增子序列 46.全排列 47.全排列Ⅱ
LeetCode 491.递增子序列
题目链接:
LeetCode 491.递增子序列
解题思路:
用哈希集合进行去重,同一树层不能取重复元素。
代码:
class Solution {
public:vector<vector<int>>result;vector<int>path;void backtracking(vector<int>&nums,int startIndex){if(path.size()>1){result.push_back(path);}unordered_set<int>uset;for(int i=startIndex;i<nums.size();i++){if((!path.empty() && nums[i] < path.back())||uset.count(nums[i])){continue;}uset.insert(nums[i]);path.push_back(nums[i]);backtracking(nums,i+1);path.pop_back(); }}vector<vector<int>> findSubsequences(vector<int>& nums) {backtracking(nums,0);return result;}
};
LeetCode 46.全排列
题目链接:
LeetCode 46.全排列
解题思路:
用used布尔数组记录当前元素是否用过,进入迭代时,就能保住当前元素不被用两次。
代码:
class Solution {
public:vector<vector<int>>result;vector<int>path;void backtracking(vector<int>&nums,vector<bool>used){if(path.size()==nums.size()){result.push_back(path);return;}for(int i=0;i<nums.size();i++){if(used[i]==true) continue;used[i] = true;path.push_back(nums[i]);backtracking(nums,used);path.pop_back();used[i] = false;}}vector<vector<int>> permute(vector<int>& nums) {vector<bool>used(nums.size(),false);backtracking(nums,used);return result;}
};
LeetCode 47.全排列Ⅱ
题目链接:
LeetCode 47.全排列Ⅱ
代码:
class Solution {
public:vector<int>path;vector<vector<int>>result;void backtracking(vector<int>&nums,vector<bool>used){if (path.size() == nums.size()) {result.push_back(path);return;}for (int i = 0; i < nums.size(); i++){if (i > 0 && nums[i] == nums[i - 1] && used[i - 1] == false) {continue;}if (used[i] == false) {used[i] = true;path.push_back(nums[i]);backtracking(nums, used);path.pop_back();used[i] = false;}}}vector<vector<int>> permuteUnique(vector<int>& nums) {result.clear();path.clear();sort(nums.begin(), nums.end()); // 排序vector<bool> used(nums.size(), false);backtracking(nums, used);return result;}
};
相关文章:
算法训练营第29天|LeetCode 491.递增子序列 46.全排列 47.全排列Ⅱ
LeetCode 491.递增子序列 题目链接: LeetCode 491.递增子序列 解题思路: 用哈希集合进行去重,同一树层不能取重复元素。 代码: class Solution { public:vector<vector<int>>result;vector<int>path;void…...
Ubuntu服务器搭建 - 环境篇
Ubuntu服务器搭建 - 环境篇 基于腾讯云服务器 - Ubuntu 20.04 LTS 一、安装 - MySQL 1.1 概述 MySQL安装方式有三种: 1. 使用Ubuntu 包管理工具 apt安装 2. 使用MySQL官方APT存储库安装 3. 使用MySQL官方二进制发行版安装 1.2 安装 MySQL 使用MySQL官方APT存储库安装 $ wget…...
深度学习基础模型之Mamba
Mamba模型简介 问题:许多亚二次时间架构(运行时间复杂度低于O(n^2),但高于O(n)的情况)(例如线性注意力、门控卷积和循环模型以及结构化状态空间模型(SSM))已被开发出来,以解决 Transformer 在长…...
Topaz Video AI for Mac v5.0.0激活版 视频画质增强软件
Topaz Video AI for Mac是一款功能强大的视频处理软件,专为Mac用户设计,旨在通过人工智能技术为视频编辑和增强提供卓越的功能。这款软件利用先进的算法和深度学习技术,能够自动识别和分析视频中的各个元素,并进行智能修复和增强&…...
解决WordPress文章的段落首行自动空两格的问题
写文章时,段落首行都会空两格,可是WordPress自带的编辑器却没有考虑到这一点,导致发布的文章首行都是顶格的,看起来很不习惯。 我们通常的解决方法都是在发布文章时把编辑器切换到“文本”模式,然后再在首行手动键入两…...
RISC-V单板计算机模拟和FPGA板多核IP实现
🎯要点 🎯使用单板计算机 Visionfive 2 或模拟器测试RISC-V汇编🎯RISC-V汇编加载和算术。🎯使用GNU MAKE汇编RISC-V指令,ESP32使用CMake编译执行指令。🎯RISC-V汇编功能和使用释义:控制指令&am…...
Mojo编程语言案例及介绍
Mojo是一种新兴的编程语言,它结合了现代编程范式与简洁易读的语法,为开发者提供了一个强大且高效的开发工具。以下将详细介绍Mojo编程语言的特性,并通过一个实际案例来展示Mojo的应用。 一、Mojo编程语言介绍 Mojo编程语言的设计理念是“简单…...
【Python面试题收录】Python中有哪些方法交换两个变量的值?至少给出三种方法。
一、使用临时变量 # 定义原始变量 a 10 b 20# 直接交换,Python会一次性执行两个赋值操作 a, b b, a# 无需额外变量,a 和 b 的值已经交换 print(a) # 输出: 20 print(b) # 输出: 10 二、利用元组解包特性(不使用临时变量,推荐…...
MySQL核心命令详解与实战,一文掌握MySQL使用
文章目录 文章简介演示库表创建数据库表选择数据库删除数据库创建表删除表向表中插入数据更新数据删除数据查询数据WHERE 操作符聚合函数LIKE 子句分组 GROUP BY HAVINGORDER BY(排序) 语句LIMIT 操作符 分页查询多表查询-联合查询 UNION 操作符多表查询-连接的使用-JOIN语句编…...
基于Springboot + MySQL + Vue 大学新生宿舍管理系统 (含源码)
目录 📚 前言 📑摘要 📑操作流程 📚 系统架构设计 📚 数据库设计 💬 管理员信息属性 💬 学生信息实体属性 💬 宿舍安排信息实体属性 💬 卫生检查信息实体属性 &…...
vulnhub pWnOS v2.0通关
知识点总结: 1.通过模块来寻找漏洞 2.msf查找漏洞 3.通过网站源代码,查看模块信息 环境准备 攻击机:kali2023 靶机:pWnOS v2.0 安装地址:pWnOS: 2.0 (Pre-Release) ~ VulnHub 在安装网址中看到,该靶…...
leetcode热题100.数据流的中位数
作者:晓宜 🌈🌈🌈 个人简介:互联网大厂Java准入职,阿里云专家博主,csdn后端优质创作者,算法爱好者 ❤️❤️❤️ 你的关注是我前进的动力😊 Problem: 295. 数据流的中位数…...
C 从函数返回指针
我们已经了解了 C 语言中如何从函数返回数组,类似地,C 允许您从函数返回指针。为了做到这点,您必须声明一个返回指针的函数,如下所示: int * myFunction() { . . . }另外,C 语言不支持在调用函数时返回局部…...
(文章复现)考虑分布式电源不确定性的配电网鲁棒动态重构
参考文献: [1]徐俊俊,吴在军,周力,等.考虑分布式电源不确定性的配电网鲁棒动态重构[J].中国电机工程学报,2018,38(16):4715-47254976. 1.摘要 间歇性分布式电源并网使得配电网网络重构过程需要考虑更多的不确定因素。在利用仿射数对分布式电源出力的不确定性进行合…...
蓝桥杯第八届c++大学B组详解
目录 1.购物单 2.等差素数列 3.承压计算 4.方格分割 5.日期问题 6.包子凑数 7.全球变暖 8.k倍区间 1.购物单 题目解析:就是将折扣字符串转化为数字,进行相加求和。 #include<iostream> #include<string> #include<cmath> usin…...
小于n的最大数 Leetcode 902 Numbers At Most N Given Digit Set
这两个问题的本质就是一个棵树,然后根据n对树做剪枝。难点在于剪的时候边界条件有些坑,get_lower_largest_digit_dic是这两个题目的共同点 题目一: 小于n的最大数 算法题目:小于n的最大数 问题描述:给一个数组nums[5…...
Leetcode刷题-数组(二分法、双指针法、窗口滑动)
数组 1、二分法 704. 二分查找 - 力扣(LeetCode) 需要注意区间的问题。首先在最外面的循环判断条件是left<right。那就说明我们区间规定的范围就是【left,right】 属于是左闭右闭!!!!!&…...
STM32学习和实践笔记(4): 分析和理解GPIO_InitTypeDef GPIO_InitStructure (b)
继续上篇博文:STM32学习和实践笔记(4): 分析和理解GPIO_InitTypeDef GPIO_InitStructure (a)-CSDN博客 往下写, 为什么:当GPIO_InitStructure.GPIO_PinGPIO_Pin_0 ; 时,其实就是将对应的该引脚的寄存器地…...
数据仓库——事实表
数据仓库基础笔记思维导图已经整理完毕,完整连接为: 数据仓库基础知识笔记思维导图 事实表 事务事实表 事务事实表用于跟踪事件,通过存储事实和与之关联的维度细节,允许单独或聚集地研究行为。粒度稀疏性包含可加事实 无事实的…...
人工智能常用的编程语言有哪些?
人工智能常用的编程语言包括Python、Java、C、R、Lisp和Prolog等。具体选择取决于项目需求、技术背景和性能要求。 Python是AI领域的明星语言,由于其简洁易懂的语法、丰富的库支持以及庞大的社区资源,适用于机器学习、深度学习和自然语言处理等领域。 …...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
Redis上篇--知识点总结
Redis上篇–解析 本文大部分知识整理自网上,在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 1. 基本介绍 Redis 是一个开源的、高性能的 内存键值数据库,Redis 的键值对中的 key 就是字符串对象,而 val…...
raid存储技术
1. 存储技术概念 数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划,涵盖存储系统的布局、数据存储策略等,它明确数据如何存储、管理与访问,为数据的安全、高效使用提供支撑。 由计算机中一组存储设备、控制部件和管理信息调度的…...
【记录坑点问题】IDEA运行:maven-resources-production:XX: OOM: Java heap space
问题:IDEA出现maven-resources-production:operation-service: java.lang.OutOfMemoryError: Java heap space 解决方案:将编译的堆内存增加一点 位置:设置setting-》构建菜单build-》编译器Complier...
未授权访问事件频发,我们应当如何应对?
在当下,数据已成为企业和组织的核心资产,是推动业务发展、决策制定以及创新的关键驱动力。然而,未授权访问这一隐匿的安全威胁,正如同高悬的达摩克利斯之剑,时刻威胁着数据的安全,一旦触发,便可…...
