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

成都武侯区网站建设/网页设计是干嘛的

成都武侯区网站建设,网页设计是干嘛的,知名网站制作公司,如何设计一个有趣的网页2021年03月18日 周四 天气晴 【不悲叹过去,不荒废现在,不惧怕未来】 本文目录1. 问题简介2. 题解(回溯大法)2.1 临时数组法2.2 交换法*复杂度分析参考文献1. 问题简介 46. 全排列 2. 题解(回溯大法) 2.…

2021年03月18日 周四 天气晴 【不悲叹过去,不荒废现在,不惧怕未来】

本文目录

  • 1. 问题简介
  • 2. 题解(回溯大法)
    • 2.1 临时数组法
    • 2.2 交换法
    • *复杂度分析
  • 参考文献


1. 问题简介

46. 全排列
在这里插入图片描述

2. 题解(回溯大法)

2.1 临时数组法

class Solution {
public:unordered_set<int> uset; // 利用哈希表判断元素是否遍历过了vector<vector<int>> res;vector<vector<int>> permute(vector<int>& nums) {vector<int> tmp; // 临时数组,存放每一个排列的结果dfs(nums,tmp,0);return res;}void dfs(vector<int>& nums, vector<int>& tmp, int n){// 终止条件,所有位都遍历完了if(n==nums.size()){res.push_back(tmp);return;}for(int num:nums){// 如果 num 还没有遍历if(uset.find(num)==uset.end()){// 加入哈希表和临时数组uset.insert(num);tmp.push_back(num);// 继续遍历下一位dfs(nums,tmp,n+1);// 遍历完之后记得还原,避免分支污染uset.erase(num);tmp.pop_back();}}}
};

这是我第一次做的时候写出的答案,比较容易理解。虽然可以通过,但是要比官方法(下面的交换法)更加耗时一些。

2.2 交换法

class Solution {
public:void backtrack(vector<vector<int>>& res, vector<int>& output, int first, int len){// 所有数都填完了if (first == len) {res.emplace_back(output);return;}for (int i = first; i < len; ++i) {// 动态维护数组swap(output[i], output[first]);// 继续递归填下一个数backtrack(res, output, first + 1, len);// 撤销操作swap(output[i], output[first]);}}vector<vector<int>> permute(vector<int>& nums) {vector<vector<int> > res;backtrack(res, nums, 0, (int)nums.size());return res;}
};

交换法也是解决全排列问题的标准方法了,代码虽然简单,但是理解起来会稍微费点劲儿。

下面这张图帮助理解:
在这里插入图片描述

*复杂度分析

在这里插入图片描述
时间复杂度的计算比较难懂,可以参考下面这张图进行理解:
在这里插入图片描述
把每一层的交换次数加起来,可以得到总的调用次数为:
在这里插入图片描述
然后就能进行上面的公式推导了。


参考文献

https://leetcode-cn.com/problems/permutations/solution/quan-pai-lie-by-leetcode-solution-2/

https://blog.csdn.net/u013905744/article/details/113779407

http://www.jmfq.cn/news/5183137.html

相关文章:

  • h5邀请函制作/seo关键词排名系统
  • 广州做网站的公/电商网站建设教程
  • 做网站域名有什么用/网络黄页推广软件
  • 一个空间做2个网站/西安网站seo技术
  • 免费搭建网站/如何写软文赚钱
  • 北京市城乡建设管理委员会官方网站/东莞搜索引擎推广
  • 那个网站做二手买卖的/天津seo排名效果好
  • 皮革材料做网站/如何引流被动加好友微信
  • 个人做网站赚钱/沪深300指数基金排名
  • 视频制作软件pr/网站优化排名易下拉霸屏
  • 做课件的软件下载带有蓝色的网站/济南seo网站优化公司
  • 东莞整站优化/百度公司
  • 怎么样让网站做的大气/广州代运营公司有哪些
  • 深圳市建筑工程/上海专业排名优化公司
  • 小程序网站/怎么自己做一个小程序
  • 深圳外贸网站开发/如何做好品牌宣传
  • 网站建设高效解决之道/国内seo排名分析主要针对百度
  • 网站结构和布局区别/北京百度搜索排名优化
  • 做任务挣钱的网站聚/5g网络优化培训
  • 图做的好的网站/十大app开发公司排名
  • WordPress伪静态公告404/优化搜索引擎的方法
  • 武汉公司制作网站的/seo咨询邵阳
  • 做网站哪一家公司好/网站快速优化排名排名
  • 建设局哪个网站查证/百度会员登录入口
  • 企业维护/东莞seo优化排名推广
  • b2b网站有那些/提高搜索引擎检索效果的方法
  • 重装wordpress/木卢seo教程
  • 如何做120急救网站/百度入口网站
  • 运城建网站/经典的软文广告
  • 有趣的网站网址/跨境电商