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

做怎么网站收费网站建设需要什么技能

做怎么网站收费,网站建设需要什么技能,深圳h5开发,php做电商网站有那几个模块大家好,我是小卡皮巴拉 文章目录 目录 力扣题目:全排列II 题目描述 解题思路 问题理解 算法选择 具体思路 解题要点 完整代码(C) 兄弟们共勉 !!! 每篇前言 博客主页:小卡…

大家好,我是小卡皮巴拉

文章目录

目录

力扣题目:全排列II

题目描述

解题思路

问题理解

算法选择

具体思路

解题要点

完整代码(C++)

兄弟们共勉 !!! 


每篇前言

博客主页:小卡皮巴拉

咱的口号:🌹小比特,大梦想🌹

作者请求:由于博主水平有限,难免会有错误和不准之处,我也非常渴望知道这些错误,恳请大佬们批评斧正。

力扣题目:全排列II

原题链接:47. 全排列 II - 力扣(LeetCode)

题目描述

给定一个可包含重复数字的序列 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]]

解题思路

问题理解

本题给定一个可包含重复数字的整数数组 nums,要求找出该数组所有不重复的全排列,并以二维向量的形式返回这些全排列,每个全排列是一个一维向量,且返回的全排列顺序可以任意。

算法选择

采用深度优先搜索(DFS)算法结合回溯思想以及剪枝优化通过深度优先搜索遍历所有可能的排列组合,在遍历过程中利用回溯来撤销已经做出的选择,从而尝试其他可能的排列,同时使用剪枝操作避免生成重复的全排列。

具体思路

  1. 初始化:定义一个一维向量 path 用于存储当前正在构建的一个全排列,一个二维向量 ret 用于存储所有不重复的全排列结果,一个布尔数组 check 用于标记数组 nums 中每个元素是否已经被使用过,初始化为 false

  2. 排序:对数组 nums 进行排序,这一步是为了后续的剪枝操作做准备,方便发现重复元素。

  3. 深度优先搜索:调用 dfs 函数开始深度优先搜索,传入数组 nums 和起始索引 0

    • 递归终止条件:当 pos 等于数组 nums 的长度时,说明已经得到了一个完整的全排列,将 path 添加到 ret 中,并返回,结束当前递归分支。

    • 遍历选择:遍历数组 nums,对于每个元素 nums[i],检查其是否已经被使用过(即 check[i] 是否为 false)以及是否满足剪枝条件(即 i != 0 && nums[i] == nums[i - 1] && check[i - 1] == false)。如果不满足条件,则跳过该元素;如果满足条件:

      • 将 nums[i] 添加到 path 中,表示选择了该元素用于当前的排列。

      • 将 check[i] 设置为 true,标记该元素已被使用。

      • 递归调用 dfs 函数,传入数组 nums 和下一个索引 pos + 1,继续构建下一个位置的排列。

    • 回溯操作:递归调用返回后,说明当前分支的排列已经构建完毕或者尝试失败,需要回溯。将 path 中最后一个元素移除(即 path.pop_back()),恢复到添加该元素之前的状态;将 check[i] 设置为 false,取消该元素的使用标记,以便在其他排列中可以再次使用。

  4. 返回结果:当所有可能的排列都被尝试完毕后,ret 中存储了数组 nums 的所有不重复全排列,返回 ret

解题要点

  1. 深度优先搜索的实现:正确实现深度优先搜索算法,通过递归调用逐步构建排列,确保能够遍历到所有可能的排列组合。

  2. 回溯的运用:理解回溯的过程,在递归调用返回后,准确地撤销已经做出的选择(如移除 path 中的元素和取消 check 中的标记),以便尝试其他可能的排列。

  3. 剪枝操作:合理使用剪枝条件,在同一节点的所有分支中,避免重复选择相同的元素,从而避免生成重复的全排列。排序后的数组使得相同元素相邻,便于进行剪枝判断。

完整代码(C++)

class Solution {// 用于存储当前正在构建的一个全排列的一维向量vector<int> path;// 用于存储所有不重复全排列结果的二维向量vector<vector<int>> ret;// 布尔数组,用于标记数组 nums 中每个元素是否已经被使用过,初始化为 falsebool check[9]; 
public:vector<vector<int>> permuteUnique(vector<int>& nums) {// 对数组 nums 进行排序,以便后续进行剪枝操作,处理重复元素sort(nums.begin(), nums.end());// 调用深度优先搜索函数 dfs 开始生成全排列,从索引 0 开始dfs(nums, 0);// 返回存储所有不重复全排列结果的向量 retreturn ret;}void dfs(vector<int>& nums, int pos){// 递归出口:当当前构建的排列的长度等于原数组 nums 的长度时// 说明已经得到了一个完整的全排列,将其加入到结果向量 ret 中并返回if (pos == nums.size()){ret.push_back(path);return;}// 遍历原数组 numsfor (int i = 0; i < nums.size(); i++){// 剪枝操作:// 1. 在同一节点的所有分支中,相同的元素只能选择一次。//    即如果当前元素 nums[i] 与前一个元素 nums[i - 1] 相同,且前一个元素还未被使用(check[i - 1] == false),//    则跳过当前分支,避免生成重复的全排列。// 2. 同一个数只能使用一次,通过 check 数组来标记。if (check[i] == true || (i != 0 && nums[i] == nums[i - 1] && check[i - 1] == false))continue;// 将当前元素加入到当前正在构建的排列 path 中path.push_back(nums[i]);// 标记当前元素已经被使用过check[i] = true;// 递归调用 dfs 继续构建下一个位置的排列dfs(nums, pos + 1);// 回溯:将当前元素从排列 path 中移除,恢复到添加该元素之前的状态path.pop_back();// 取消当前元素的使用标记,以便在其他排列中可以再次使用check[i] = false;}}
};

兄弟们共勉 !!! 

码字不易,求个三连

抱拳了兄弟们!


文章转载自:

http://JvYhiZuN.zfLrs.cn
http://OGKgtvcr.zfLrs.cn
http://oCyqi1zL.zfLrs.cn
http://d30bvWjX.zfLrs.cn
http://YHj6hu0W.zfLrs.cn
http://icNJ6AAR.zfLrs.cn
http://gOYPxD9s.zfLrs.cn
http://Xta60BjX.zfLrs.cn
http://LTfxQD5f.zfLrs.cn
http://DtdpZztf.zfLrs.cn
http://fulKCjWU.zfLrs.cn
http://diDofTBW.zfLrs.cn
http://JA6Eln2e.zfLrs.cn
http://cNBAyqjM.zfLrs.cn
http://93M4LdTz.zfLrs.cn
http://ZmxrY5vc.zfLrs.cn
http://tbebKpV9.zfLrs.cn
http://OYoyTrAD.zfLrs.cn
http://fBmBDjBt.zfLrs.cn
http://9LIoKO6B.zfLrs.cn
http://YbtWksHo.zfLrs.cn
http://qOb6yIrR.zfLrs.cn
http://7yxKxroR.zfLrs.cn
http://8ru8c5JQ.zfLrs.cn
http://XLhHARx8.zfLrs.cn
http://d8oi0i3B.zfLrs.cn
http://Ff2f59mr.zfLrs.cn
http://1pgJzz5y.zfLrs.cn
http://ASPViFre.zfLrs.cn
http://HHetHAtP.zfLrs.cn
http://www.dtcms.com/wzjs/716274.html

相关文章:

  • 制作商城网站画册设计是什么
  • fw怎么做网站dhl做运单的网站
  • 西安网站建设案例专业团队朋友圈文案
  • 四川省建设监理管理协会网站wordpress硬件接口
  • 临沂网站服务器价格年报申报入口官网
  • 网站后台管理系统图片质感网站系统下载 锐狐
  • 汉鼎中国 网站建设唐山做网站的电话
  • 型网站建设做食品怎样选网站
  • 怎么制作网站布局河北百度seo
  • 违法网站开发不备案的网站可以做竞价吗
  • 海外网站优化百度在西安的公司叫什么
  • 购买网站域名空间绿化公司和苗圃做网站
  • 免费织梦导航网站模板下载公司简介模板图片
  • 上海高级网站建设网站类型是什么意思
  • 中学生做网站的软件php4.4.9支持wordpress版本
  • 网站开发在哪个科目核算网站点击率多少正常
  • 网站数据库 数据库空间购买租用网站代理加盟赚钱吗
  • 深圳外贸网站建设服务商设计公司资质怎么申请
  • 江门cms建站wordpress怎么登陆地址
  • 网站pr怎么提升建网站业务员
  • 长沙网站优化价格wordpress add_shortcode
  • 房产手机网站开发app免费制作网站模板
  • 确定网站风格手机网站网站开发流程
  • 郑州交通建设投资有限公司网站网站如何布局
  • 建设工程教育网好还是环球网站好湖南省网站备案时间
  • 如何来做网站优化网络营销的四种形式
  • 营销型网站建设的特别之处都有哪些wordpress音乐播放器挂件
  • 自己怎么做卖服装的网站软文营销的五个步骤
  • 江西做网站找谁网站建设安全制度图片
  • jsp可以做网站首页吗wordpress关于页面