代码随想录算法刷题训练营day29:LeetCode(491)递增子序列、LeetCode(46)全排列、LeetCode(47)全排列 II

代码随想录算法刷题训练营day29:LeetCode(491)递增子序列、LeetCode(46)全排列、LeetCode(47)全排列 II

LeetCode(491)递增子序列
题目
在这里插入图片描述
代码

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;class Solution {//先取出来再定义一个函数进行判断public Set<List<Integer>> tempResult=new HashSet<>();public List<Integer> path=new ArrayList<>();public List<List<Integer>> findSubsequences(int[] nums) {int startIndex=0;backtracking(nums,startIndex);List<List<Integer>> result=new ArrayList<>(tempResult);return result;}public void backtracking(int[] nums,int startIndex){if(isSubsequences(path)){List<Integer> tempPath=Arrays.asList(new Integer[path.size()]);Collections.copy(tempPath, path);tempResult.add(tempPath);//子集问题不能加return}for(int i=startIndex;i<nums.length;i++){path.add(nums[i]);backtracking(nums, i+1);path.remove(path.size()-1);}}public boolean isSubsequences(List<Integer> path){boolean flag=true;if(path.size()<2){flag=false;}List<Integer> testPath=Arrays.asList(new Integer[path.size()]);Collections.copy(testPath, path);Collections.sort(testPath);for(int i=0;i<path.size();i++){if(testPath.get(i)!=path.get(i)){flag=false;}}return flag;}
}

LeetCode(46)全排列
题目
在这里插入图片描述

代码

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;class Solution {public List<List<Integer>> result=new ArrayList<>();public List<Integer> path=new ArrayList<>();public List<List<Integer>> permute(int[] nums) {int[] used=new int[nums.length];//记录元素是否被使用int startIndex=0;backtracking(nums,used);        return result;}public void backtracking(int[] nums,int[] used){if(path.size()==nums.length){List<Integer> tempPath=Arrays.asList(new Integer[path.size()]);Collections.copy(tempPath, path);result.add(tempPath);return;}for(int i=0;i<nums.length;i++){if(used[i]==1){continue;//1-1这个分支直接没有了,直此时就能到1-2了--重点}path.add(nums[i]);used[i]=1;backtracking(nums, used);path.remove(path.size()-1);used[i]=0;//弹出来状态也得改变}}
}

LeetCode(47)全排列 II
题目
在这里插入图片描述

代码

java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;class Solution {public Set<List<Integer>> tempResult=new HashSet<>();//用set集合做public List<Integer> path=new ArrayList<>();public List<List<Integer>> permuteUnique(int[] nums) {int[] used=new int[nums.length];backtracking(nums,used);List<List<Integer>> result=new ArrayList<>(tempResult);return result;}public void backtracking(int[] nums,int[] used){if(path.size()==nums.length){List<Integer> tempPath=Arrays.asList(new Integer[path.size()]);Collections.copy(tempPath, path);tempResult.add(tempPath);return;}for(int i=0;i<nums.length;i++){if(used[i]==1){continue;}path.add(nums[i]);used[i]=1;backtracking(nums, used);path.remove(path.size()-1);used[i]=0;}}
}

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

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

相关文章

2024年AI全景预测

欢迎来到 2024 年人工智能和技术的可能性之旅。 在这里&#xff0c;每一个预测都是一个潜在的窗口&#xff0c;通向充满创新、变革、更重要的是类似于 1950 年代工业革命的未来。 20 世纪 50 年代见证了数字计算的兴起&#xff0c;重塑了行业和社会规范。 如今&#xff0c;人工…

老卫带你学---leetcode刷题(242. 有效的字母异位词)

242. 有效的字母异位词 问题 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。 示例 1: 输入: s “anagram”, t “nagaram” 输出: t…

力扣1143. 最长公共子序列(动态规划)

Problem: 1143. 最长公共子序列 文章目录 题目描述思路复杂度Code 题目描述 思路 我们统一标记&#xff1a;str1[i]代表text1表示的字符数组&#xff0c;str2[j]代表text2表示的字符数组&#xff1b;LCS代表最长的公共子序列&#xff1b;&#xff08;我们易得只有str1[i]和str…

Flutter中Widget的生命周期

Widget生命周期&#xff1a; createState-initState-didChangeDependency-build-deactive-dispose 可通过WidgetsBinding类对widget生命周期的回调进行监控。 createState&#xff1a;StatefulWidget 中用于创建 State&#xff1b; initState&#xff1a;State 的初始化操作&am…

CLion远程调试C++

文件映射到 可以右键文件夹选择重新Cmake 编译

xsslabs第七关

源码 <!DOCTYPE html><!--STATUS OK--><html> <head> <meta http-equiv"content-type" content"text/html;charsetutf-8"> <script> window.alert function() { confirm("完成的不错&#xff01;"…

【刷题】Leetcode 1609.奇偶树

Leetcode 1609.奇偶树 题目描述广度优先搜索&#xff08;BFS&#xff09;深度优先算法&#xff08;DFS&#xff09; 思路一&#xff08;BFS&#xff09;思路二&#xff08;DFS&#xff09;Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;&#xff01;&a…

ShardingSphere Narayana XA 事务不回滚问题定位

ShardingSphere Narayana XA 事务不回滚问题定位 问题背景 用户反馈&#xff0c;在使用 ShardingSphere Narayana 执行 XA 事务时&#xff0c;发生报错&#xff1a;java.sql.SQLException: javax.transaction.RollbackException: TransactionImple.enlistResource - ARJUNA0…

数字后端——DEF文件格式

文章目录 MACRO的不同orientationDEF中在macro orientation定义前需要留空格 MACRO的不同orientation DEF中在macro orientation定义前需要留空格 像下图中这种方向和分号之间没有空格的情况&#xff0c;就是有问题的格式。

C语言清空文件夹、C语言判断文件夹下的文件夹是否存在,如果存在就清空,如果不存在则建立

代码解法不唯一&#xff0c;请在评论区留下你的实现方式和想法&#xff0c;我会将好的解法更新到文章中&#xff01;&#xff01; 要在C语言中判断文件夹下的文件夹是否存在&#xff0c;如果存在就清空&#xff0c;如果不存在则建立&#xff0c;需要使用C标准库中的系统调用或…

数学学习与研究杂志社《数学学习与研究》杂志社编辑部2023年第29期目录

考试研究 提高高三数学二轮复习质量的思考与实践 佘淮青; 2-4 提升高三数学复习质量的策略探究 王飞; 5-7 核心素养背景下的高中数学命题策略研究 陈明发; 8-10 提升中考数学复习课的有效性研讨 韩兴宏; 11-13 中学教学方法《数学学习与研究》投稿&#xff1a;…

将c、c++变为python

1.编写cpp文件 #include "pycpp.h" #include <iostream>using namespace std;PyCpp::PyCpp(){}void PyCpp::sayHello(int a){cout << "Hello Python, I am C."<<a << endl; }2.编写头文件&#xff08;声明变量&#xff09; clas…

SpringBoot之自定义Redis缓存key的生成策略配置

SpringBoot之自定义Redis缓存key的生成策略配置 文章目录 SpringBoot之自定义Redis缓存key的生成策略配置1. SpringBoot版本2. Redis缓存配置类 自定义缓存key生成策略&#xff1b;key与value的序列化&#xff1b;key过期配置管理器 1. SpringBoot版本 <parent><group…

pyuic生成py文件到指定文件夹

pyuic生成py文件到指定文件夹 关于如何在pycharm配置外部工具的方法这里不做赘述&#xff0c;本文主要说明&#xff0c;如何利用pyuic将ui文件生成到指定的项目目录中。 前提条件&#xff1a;已配置的pyuic工具可以正常使用生成文件到目录中。 一、打开外部工具配置页面 打开…

如何用Python检查时间序列数据是否平稳?

时间序列数据通常以其时间性质为特征。这种时间性质为数据增加了趋势或季节性&#xff0c;使其与时间序列分析和预测兼容。如果时间序列数据不随时间变化或没有时间结构&#xff0c;则称其为静态数据。因此&#xff0c;检查数据是否平稳是非常必要的。在时间序列预测中&#xf…

用HTML5的<canvas>元素实现刮刮乐游戏

用HTML5的<canvas>元素实现刮刮乐 用HTML5的<canvas>元素实现刮刮乐&#xff0c;要求&#xff1a;将上面的“图层”的图像可用鼠标刮去&#xff0c;露出下面的“图层”的图像。 示例从简单到复杂。 简单示例 准备两张图像&#xff0c;我这里上面的图像top_imag…

node express实现Excel文档转json文件

有些场景我们需要将Excel文档中的内容抽取出来生成别的文件&#xff0c;作为一个前端&#xff0c;服务框架最应该熟悉的就是node了&#xff0c;以下是基于多语言转换实现代码&#xff0c;看明白原理自己改一改就能用了 1.安装node环境 2.创建一个文件夹&#xff0c;文件夹中创建…

7、Redis-事务、持久化、内存淘汰机制和过期key处理

目录 一、事务 二、持久化 三、内存淘汰机制 四、过期key处理 一、事务 Redis的事务本质上就是一个批量执行命令的操作。分为三个步骤&#xff1a; 开始事务&#xff1a;multi命令入队&#xff1a;正常输入命令即可执行事务&#xff08;依次执行命令&#xff09;&#xf…

掌握java模板方法模式,提升代码复用与扩展的艺术

Java 模板方法模式是一种行为型设计模式&#xff0c;它定义了一个算法的骨架&#xff0c;并将一些步骤延迟到子类中实现。模板方法模式使得子类可以在不改变算法结构的情况下重定义算法中的某些步骤。 使用场景 算法骨架固定&#xff1a;如果一个算法的基本结构已经固定&#…

跨专业考研难度大吗?听听过来人的真实经历

在考研的大潮中&#xff0c;跨专业考研成为了一个不可忽视的现象。许多考生因为对原专业失去兴趣、追求职业梦想或其他原因&#xff0c;选择了跨专业报考。那么&#xff0c;跨专业考研的难度究竟有多大呢&#xff1f;今天&#xff0c;我们就来聊聊这个话题&#xff0c;听听过来…