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

青柠直播免费版郑州网站优化渠道

青柠直播免费版,郑州网站优化渠道,智慧团建平台,机关单位 网站建设方案策划书1. 题目链接:46. 全排列 2. 题目描述: 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],…

1. 题目链接:46. 全排列

2. 题目描述:

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

示例 1:

输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

示例 2:

输入:nums = [0,1]
输出:[[0,1],[1,0]]

示例 3:

输入:nums = [1]
输出:[[1]]

提示:

  • 1 <= nums.length <= 6
  • -10 <= nums[i] <= 10
  • nums 中的所有整数 互不相同

3.解法(递归):

3.1 算法思路:

典型的回溯题目,我们需要在每一个位置上考虑所有的可能情况并且不能出现重复。通过深度优先搜索的方式,不断地枚举每个数在当前位置的可能性,并且回溯到上一个状态,直到枚举完所有的可能性,得到正确的结果

每个数是否可能出现在当前位置,只需要判断这个数在之前是否出现即可。

3.2 递归流程:

  1. 首先定义一个二维数ret用来存放所有可能的排列,一个一维数组path用来存放正在构建的排列路径,一个一维数组用check来标记每个元素是否已经被使用过,然后从第一个位置开始进行递归
  2. 在每个递归的状态中,我们维护一个步数path,表示当前已经处理了几个数字
  3. 递归结束条件:当path等于nums数组的长度时,说明我们已经处理完了所有数字,将当前数组存入结果中
  4. 在每个递归状态中,枚举所有下标i,若这个下标未被标记,则使用nums数组中当前下标的元素:
    1. check[i]标记为 true
    2. 数组中第path个元素被nums[i]覆盖
    3. 对第path+1个位置进行递归
    4. check[i]重新赋值为flase,表示回溯
  5. 最后,返回ret

特别地,我们可以不使用标记数组,直接遍历path之后的元素(未被使用),然后将其与需要递归的位置进行交换即可
请添加图片描述

请添加图片描述

3.3 C++算法代码:

class Solution {vector<vector<int>> ret; // 存储所有可能的排列结果vector<int> path; // 当前正在构建的排列路径bool check[7]; // 标记数组,用于记录每个元素是否已经被使用过public:vector<vector<int>> permute(vector<int>& nums) {dfs(nums); // 调用深度优先搜索函数进行全排列return ret; // 返回所有可能的排列结果}void dfs(vector<int>& nums) {if (nums.size() == path.size()) { // 如果当前路径的长度等于输入数组的长度,说明已经找到了一个排列ret.push_back(path); // 将当前路径添加到结果中return; // 结束当前递归分支}for (int i = 0; i < nums.size(); i++) {if (!check[i]) { // 如果当前元素没有被使用过path.push_back(nums[i]); // 将当前元素添加到当前路径中check[i] = true; // 标记当前元素已经被使用过dfs(nums); // 继续递归搜索下一个元素// 回溯操作path.pop_back(); // 移除当前路径中的最后一个元素check[i] = false; // 标记当前元素未被使用过}}}
};
http://www.yayakq.cn/news/347480/

相关文章:

  • 网站外链建设记住5种外链方式不可用洛阳建网站公司
  • 个人网站可以备案了吗android手机版下载
  • 网站方案编写广州建论坛网站
  • 外贸网站制作哪家快什么是网站评价
  • 固镇网站建设哪家好?环保网站建设模板免费下载
  • win10 网站建设软件有哪些外贸电商网站制作
  • 免费做网站的平台做机票在线预订网站
  • 机械行业网站建设方案wordpress 推荐 配置
  • 网站名称搜索不到网页制作的公司网站
  • 网站开发费的会计处理wordpress大前端模板下载
  • wordpress企业网站主题北京专业做网站公司
  • 普通网站能不能用vue做几个小功能电商网站前端架构设计
  • 做旅游网站的项目背景4399小游戏网页版入口
  • 建设网站如何进行网站备案做关键词排名卖网站
  • 建网站的支付安全怎么做网站优化
  • 贵阳网站设计找哪家深圳市建设注册执业资格中心网站
  • 贵阳网站建设公司招聘品牌网站建设k小蝌蚪
  • 网上购物最便宜的网站成都集和品牌设计公司
  • 怎么申请网站详细步骤深圳网站建设策划
  • 小学生网站制作Wordpress必备chaj
  • 陕西住房建设厅考试官方网站个体工商户可以备案哪些网站
  • 网站建设信息在哪儿发布网站改版有什么影响
  • 小说网站怎么做推广重庆市建设公共资源交易中心网站首页
  • 网站开发技术简介dwphp英文商城网站建设
  • 网站公司建设个服务号多少钱成都租车公司网站
  • 小说网站建设吧电子商务主要就业方向
  • 网站如何做视频点播平台网站开发风险
  • 建站导航网页设计尺寸1440
  • 网站建设财务处理网站建设公司有哪些重要职务
  • 做网站建设与推广企业三门峡住房城乡建设局网站