移动端响应式网站怎么做移动端适配 wordpress

bicheng/2026/1/19 19:35:50/文章来源:
移动端响应式网站怎么做,移动端适配 wordpress,鑫三科技网站设计,网页制作平台软件目录 * 491.递增子序列 #x1f4a1;解题思路 回溯三部曲 #x1f4bb;实现代码 * 46.全排列 #x1f4a1;解题思路 # 回溯三部曲 单层搜索的逻辑 #x1f4bb;实现代码 * 47.全排列 II #x1f4a1;解题思路 #x1f4bb;实现代码 * 491.递增子序列 题目链…目录 * 491.递增子序列 解题思路 回溯三部曲 实现代码 * 46.全排列 解题思路 # 回溯三部曲 单层搜索的逻辑 实现代码 * 47.全排列 II 解题思路 实现代码 * 491.递增子序列 题目链接 491.递增子序列 给定一个整型数组, 你的任务是找到所有该数组的递增子序列递增子序列的长度至少是2。 示例: 输入: [4, 6, 7, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]] 说明: 给定数组的长度不会超过15。数组中的整数范围是 [-100,100]。给定数组中可能包含重复数字相等的数字应该被视为递增的一种情况。 解题思路 回溯三部曲 递归函数参数 本题求子序列很明显一个元素不能重复使用所以需要startIndex调整下一层递归的起始位置。 代码如下 vectorvectorint result; vectorint path; void backtracking(vectorint nums, int startIndex)终止条件 本题其实类似求子集问题也是要遍历树形结构找每一个节点 可以不加终止条件startIndex每次都会加1并不会无限递归。 但本题收集结果有所不同题目要求递增子序列大小至少为2所以代码如下 if (path.size() 1) {result.push_back(path);// 注意这里不要加return因为要取树上的所有节点 }单层搜索逻辑 在图中可以看出同一父节点下的同层上使用过的元素就不能再使用了 那么单层搜索代码如下 unordered_setint uset; // 使用set来对本层元素进行去重 for (int i startIndex; i nums.size(); i) {if ((!path.empty() nums[i] path.back())|| uset.find(nums[i]) ! uset.end()) {continue;}uset.insert(nums[i]); // 记录这个元素在本层用过了本层后面不能再用了path.push_back(nums[i]);backtracking(nums, i 1);path.pop_back(); }对于已经习惯写回溯的同学看到递归函数上面的uset.insert(nums[i]);下面却没有对应的pop之类的操作应该很不习惯吧 这也是需要注意的点unordered_setint uset; 是记录本层元素是否重复使用新的一层uset都会重新定义清空所以要知道uset只负责本层 实现代码 class Solution {ListListInteger result new ArrayList();ListInteger path new ArrayList();public ListListInteger findSubsequences(int[] nums) {backTracking(nums, 0);return result;}private void backTracking(int[] nums, int startIndex){if(path.size() 2)result.add(new ArrayList(path)); HashSetInteger hs new HashSet();for(int i startIndex; i nums.length; i){if(!path.isEmpty() path.get(path.size() -1 ) nums[i] || hs.contains(nums[i]))continue;hs.add(nums[i]);path.add(nums[i]);backTracking(nums, i 1);path.remove(path.size() - 1);}} }class Solution {private ListInteger path new ArrayList();private ListListInteger res new ArrayList();public ListListInteger findSubsequences(int[] nums) {backtracking(nums,0);return res;}private void backtracking (int[] nums, int start) {if (path.size() 1) {res.add(new ArrayList(path));}int[] used new int[201];for (int i start; i nums.length; i) {if (!path.isEmpty() nums[i] path.get(path.size() - 1) ||(used[nums[i] 100] 1)) continue;used[nums[i] 100] 1;path.add(nums[i]);backtracking(nums, i 1);path.remove(path.size() - 1);}} }//法二使用map class Solution {//结果集合ListListInteger res new ArrayList();//路径集合LinkedListInteger path new LinkedList();public ListListInteger findSubsequences(int[] nums) {getSubsequences(nums,0);return res;}private void getSubsequences( int[] nums, int start ) {if(path.size()1 ){res.add( new ArrayList(path) );// 注意这里不要加return要取树上的节点}HashMapInteger,Integer map new HashMap();for(int istart ;i nums.length ;i){if(!path.isEmpty() nums[i] path.getLast()){continue;}// 使用过了当前数字if ( map.getOrDefault( nums[i],0 ) 1 ){continue;}map.put(nums[i],map.getOrDefault( nums[i],0 )1);path.add( nums[i] );getSubsequences( nums,i1 );path.removeLast();}} }* 46.全排列 题目链接46.全排列 给定一个 没有重复 数字的序列返回其所有可能的全排列。 示例: 输入: [1,2,3]输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] 解题思路 # 回溯三部曲 递归函数参数 首先排列是有序的也就是说 [1,2] 和 [2,1] 是两个集合这和之前分析的子集以及组合所不同的地方。 可以看出元素1在[1,2]中已经使用过了但是在[2,1]中还要在使用一次1所以处理排列问题就不用使用startIndex了。 但排列问题需要一个used数组标记已经选择的元素如图橘黄色部分所示: 代码如下 vectorvectorint result; vectorint path; void backtracking (vectorint nums, vectorbool used)递归终止条件 可以看出叶子节点就是收割结果的地方。 当收集元素的数组path的大小达到和nums数组一样大的时候说明找到了一个全排列也表示到达了叶子节点。 代码如下 // 此时说明找到了一组 if (path.size() nums.size()) {result.push_back(path);return; }单层搜索的逻辑 因为排列问题每次都要从头开始搜索例如元素1在[1,2]中已经使用过了但是在[2,1]中还要再使用一次1。 而used数组其实就是记录此时path里都有哪些元素使用了一个排列里一个元素只能使用一次。 代码如下 for (int i 0; i nums.size(); i) {if (used[i] true) continue; // path里已经收录的元素直接跳过used[i] true;path.push_back(nums[i]);backtracking(nums, used);path.pop_back();used[i] false; }实现代码 class Solution {ListListInteger result new ArrayList();// 存放符合条件结果的集合LinkedListInteger path new LinkedList();// 用来存放符合条件结果boolean[] used;public ListListInteger permute(int[] nums) {if (nums.length 0){return result;}used new boolean[nums.length];permuteHelper(nums);return result;}private void permuteHelper(int[] nums){if (path.size() nums.length){result.add(new ArrayList(path));return;}for (int i 0; i nums.length; i){if (used[i]){continue;}used[i] true;path.add(nums[i]);permuteHelper(nums);path.removeLast();used[i] false;}} }// 解法2通过判断path中是否存在数字排除已经选择的数字 class Solution {ListListInteger result new ArrayList();LinkedListInteger path new LinkedList();public ListListInteger permute(int[] nums) {if (nums.length 0) return result;backtrack(nums, path);return result;}public void backtrack(int[] nums, LinkedListInteger path) {if (path.size() nums.length) {result.add(new ArrayList(path));}for (int i 0; i nums.length; i) {// 如果path中已有则跳过if (path.contains(nums[i])) {continue;} path.add(nums[i]);backtrack(nums, path);path.removeLast();}} }* 47.全排列 II 题目链接47.全排列 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]] 提示 1 nums.length 8-10 nums[i] 10 解题思路 去重一定要对元素进行排序这样我们才方便通过相邻的节点来判断是否重复使用了。 图中我们对同一树层前一位也就是nums[i-1]如果使用过那么就进行去重。 一般来说组合问题和排列问题是在树形结构的叶子节点上收集结果而子集问题就是取树上所有节点的结果。 实现代码 class Solution {//存放结果ListListInteger result new ArrayList();//暂存结果ListInteger path new ArrayList();public ListListInteger permuteUnique(int[] nums) {boolean[] used new boolean[nums.length];Arrays.fill(used, false);Arrays.sort(nums);backTrack(nums, used);return result;}private void backTrack(int[] nums, boolean[] used) {if (path.size() nums.length) {result.add(new ArrayList(path));return;}for (int i 0; i nums.length; i) {// used[i - 1] true说明同⼀树⽀nums[i - 1]使⽤过// used[i - 1] false说明同⼀树层nums[i - 1]使⽤过// 如果同⼀树层nums[i - 1]使⽤过则直接跳过if (i 0 nums[i] nums[i - 1] used[i - 1] false) {continue;}//如果同⼀树⽀nums[i]没使⽤过开始处理if (used[i] false) {used[i] true;//标记同⼀树⽀nums[i]使⽤过防止同一树枝重复使用path.add(nums[i]);backTrack(nums, used);path.remove(path.size() - 1);//回溯说明同⼀树层nums[i]使⽤过防止下一树层重复used[i] false;//回溯}}} }

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

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

相关文章

学网站建设工作推广渠道包括哪些

访问者模式是一种行为设计模式,它允许你在不修改现有对象结构的情况下,定义新的操作。访问者模式通过将操作封装在一个访问者对象中,使得可以在不同的对象上执行不同的操作,从而实现了操作和对象的解耦。 在Java中&#x…

六安服装网站建设地址餐饮吸引客流的活动方案

全世界只有3.14 % 的人关注了青少年数学之旅随着科技的发展,机器人必然逐渐进入我们的生活,甚至在许多领域替代人类。以下是目前全球范围内最先进的一些机器人:Actroid-F这种实验性机器人的目标,是创造最逼真的仿人类机器人&#…

网站的费用多少网络促销

Go 语言中的 GIF 图像处理完全指南:image/gif的技术与实践 概述安装与基础设置导入 image/gif 包初步配置示例:设置一个简单的 GIF 编码环境 读取与解码 GIF 图像读取 GIF 文件解析 GIF 数据 创建与编码 GIF 图像创建 GIF 图像编码 GIF 图像 处理 GIF 动…

王晴儿网站建设自己做的小网站

当我们在编写程序时,往往需要处理可能发生的异常情况,以保证程序的稳定性和可靠性。这时,就可以使用异常处理机制。C中的异常处理机制通过try、catch和throw关键字实现。 异常处理机制基本上遵循以下的流程: 1. 在可能引发异常的…

动易 网站首页工信部的网站备案信息查询

事情是这样的,我们项目最近应业主的要求迁移到了新的服务器,起初一切正常,部署、上线、测试都没有问题,项目大概运行了一周的工作日时间都没出现问题,直到周六那天,项目经理打电话过来说服务器崩了&#xf…

做网站的图片=gif湖南响应式网站哪里有

你不知道的 CSS 之包含块 一说到 CSS 盒模型,这是很多小伙伴耳熟能详的知识,甚至有的小伙伴还能说出 border-box 和 content-box 这两种盒模型的区别。 但是一说到 CSS 包含块,有的小伙伴就懵圈了,什么是包含块?好像…

建网站底部怎么做的南宁网页制作

本次介绍在window系统x86机器上安装国产系统 arm 系统的详细教程。 注:ubuntu 的arm系统安装是一样的流程。 1.安装环境准备。 首先,你得有台电脑,配置别太差,至少4核8G内存,安装window10或者11都行(为啥…

网站建设做一个要多久网站建设微信文章

1.MyBatis-Plus 1.1特性 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 M…

seo快速建站哪个网站做的win10系统好

博主:代码菌-CSDN博客 专栏:C杂货铺_代码菌的博客-CSDN博客 目录 🌈前言🌈 📁 类的6个默认成员函数 📁 构造函数 📂 概念 📂 特性(灰常重要) &#x1f4c…

网站建设.c看广告收益最高的软件

目录 一、HTML中Canvas画图strokeStyle 和 fillStyle 的区别是什么? 二、如何设置一幅canvas图中某个颜色透明? 三、H5 canvas中strokeRect参数如果是小数,如何处理? 四、H5 Canvas中如何画圆角矩形框? 一、HTML中…

云南城市建设职业学院spoc网站济南 网站设计公司

介绍 至少6个实例才能组成集群。3主3从会自动分配 Redis集群原理 Redis集群架构 Redis Cluster采用虚拟槽分区,将所有的数据根据算法映射到0~16383整数槽内 Redis Cluster是一个无中心的结构 每个节点都保存数据和整个集群的状态 集群角色 Master:Master…

鹤壁市城市建设投资有限公司网站一学一做动漫视频网站

Macs Fan Control Pro是一款功能全面、易于使用且具有良好兼容性和安全性的风扇控制软件,适用于各种Mac用户。 除了能够调整风扇速度外,Macs Fan Control Pro还支持实时监测硬件传感器的温度,例如CPU、硬盘等,同时显示每个传感器…

佛山网站建设专业苏州工程网站建设

Vojtěch Jarnk 一、Prim算法简史 Prim算法(普里姆算法),是1930年捷克数学家算法沃伊捷赫亚尔尼克(Vojtěch Jarnk)最早设计; 1957年,由美国计算机科学家罗伯特普里姆独立实现; 19…

营销网站建设的价格网站正能量入口

“种一棵树最好的时间是十年前,其次是现在! ” 任何时候,只要开始,一切都来得及,如果你真的想要转行,何时都不会晚,只要你付出相应的努力,坚持下去,一切都会朝着自己希望…

自己做的网站如何让外网访问网站地图生成器

【Spring连载】使用Spring访问 Apache Kafka(十八)----非阻塞重试Non-Blocking Retries 一、这种模式是如何运作的How The Pattern Works二、回退延迟精度Back Off Delay Precision概述和保证Overview and Guarantees 三、配置Configuration四、Programm…

中国教育网站官网如何制作qq小程序

本文主要收录一些大数据不错的实践文章 1、数禾云上数据湖最佳实践 https://blog.51cto.com/u_15089766/2601706 该文章介绍了数禾云的数据胡实践,包含presto以及数据湖等组件的一些部署架构,文章听不错的,里面提到了为了避免presto与yarn计…

无锡市建设银行总行网站广告联盟app下载赚钱

选择专业是一个非常重要的决定,因为它可能会对你的职业生涯产生深远的影响。C#和Java都是非常流行的编程语言,它们都有自己的优点和适用场景。 感觉题主可以从下面几个方面来考虑: 1、就业前景: 就业前景是选择专业时需要考虑的…

o2o网站建设市场网站开发 强制兼容模式

在排查线上异常的过程中,查询日志总是必不可缺的一部分。现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常困难。工欲善其事,必先利其器。如果此时有一个统一的实时日志分析平台,那可谓是雪…

做网站工作图深圳网站建设 设计首选

分布式和微服务有什么区别 分布式是把一个集中式系统拆分成多个系统,每一个系统单独对外提供部分功能,整个分布式系统整体对外提供一整套服务。对于访问分布式系统的用户来说,感知上就像访问一台计算机一样. 而分布式架构的具体实现有很多种…

做一家新闻媒体网站多少钱聊城网站那家做的好

11月18日-19日,复旦MBA科创青干营二期学生开启了整合实践活动的第三次企业参访,前往位于合肥的蔚来第二先进制造基地、安徽万邦医药科技股份有限公司和合肥国轩高科动力能源有限公司,在学术导师和科创企业家“双导师”的指导下,深…