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

微网站背景图片有没有找外加工的活的平台

微网站背景图片,有没有找外加工的活的平台,如何推广网站会员注册,怎样做免费的网站推广全排列 https://leetcode.cn/problems/permutations/ 描述 给定一个不含重复数字的数组 nums #xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1 输入#xff1a;nums [1,2,3] 输出#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,…全排列 https://leetcode.cn/problems/permutations/ 描述 给定一个不含重复数字的数组 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] 10nums 中的所有整数 互不相同 算法实现 1 回溯1: 基于数组 function permute(nums: number[]): number[][] {const res: number[][] [];// 回溯函数const backtrack (path: number[]) {// 满足当前条件if(path.length nums.length) {res.push(path);return;}// 遍历for(let i 0; i nums.length; i) {if(path.includes(nums[i])) continue;backtrack(path.concat(nums[i]));}}backtrack([]);return res; }时间复杂度O(n*n!) 假设输入数组的长度为 n遍历每个元素的时间复杂度为 O(n)对于每个元素都会进行递归调假设数组中有 n 个不同的元素那么对于每个元素都会有 n-1 个可能的选择然后对于每个选择又会有 n-2 个可能的选择以此类推因此递归的时间复杂度可以表示为 O(n!)。在每一层递归中都会进行一次包含操作includes其时间复杂度为 O(n)。综合考虑这段代码的时间复杂度为 O(n * n!)其中 n 表示输入数组的长度。需要注意的是这里的时间复杂度分析基于平均情况。在最坏情况下全排列的数量是 n!因此在最坏情况下时间复杂度为 O(n * n!)注意: n的阶乘公式: n! 1*2*3*...*(n-1)*n 空间复杂度O(n) 递归堆栈不是常量是线性增长的是递归的层数 2 回溯2: 基于交换 function permute(nums: number[]): number[][] {const res: number[][] [];const backtrack function(start: number) {if (start nums.length - 1) {res.push([...nums]);return;}for (let i: number start; i nums.length; i) {[nums[i], nums[start]] [nums[start], nums[i]]; // 交换backtrack(start 1); // 下一个数[nums[i], nums[start]] [nums[start], nums[i]]; // 交换撤销}}backtrack(0); // 从 0 开始return res; };这个问题可以看作有 n 个排列成一行的空格我们需要从左往右依此填入题目给定的 n 个数每个数只能使用一次那么很直接的可以想到一种穷举的算法即从左往右每一个位置都依此尝试填入一个数看能不能填完这 n 个空格在程序中我们可以用「回溯法」来模拟这个过程时间复杂度O(n*n!)其中 n 为序列的长度空间复杂度O(n) 回溯算法、递归和深度优先遍历DFS之间存在密切的关系 它们通常在算法中一起使用因为回溯算法通常使用递归来实现并且常常涉及到深度优先遍历的思想。 回溯算法与递归 回溯算法是一种渐进式寻找并构建问题解决方案的策略。在回溯算法中通常通过递归的方式来尝试所有可能的情况。当找到一个可能的解决方案时它会继续探索下去如果发现不符合条件就会回溯到上一个状态尝试其他可能的情况。因此回溯算法通常使用递归来实现因为递归天然地适合于处理这种尝试所有可能情况的问题。 回溯算法与深度优先遍历 回溯算法通常使用深度优先遍历的思想。在回溯算法中我们会尝试一条路走到底直到无法再继续下去然后回溯到上一个状态尝试其他的可能性。这与深度优先遍历的思想是一致的深度优先遍历也是尽可能深地搜索树的分支直到无法再继续为止然后回溯到上一个节点继续搜索其他分支 因此回溯算法通常使用递归来实现并且其思想与深度优先遍历密切相关。 在许多情况下回溯算法可以被视为一种特殊的深度优先遍历。
http://www.w-s-a.com/news/404653/

相关文章:

  • vps网站助手大学选修课网站建设
  • 南浦电商网站建设北京海淀社保网站
  • 传奇网站模板怎么做的吗大连警方最新通告
  • 成都私人做公司网站的北京网站建设需要多少钱
  • 魔客吧是什麼程序做的网站代理厦门网站设计公司
  • 90设计手机站东营网站推广
  • 哪家购物网站建设好专门做水生植物销售网站
  • php医院网站开发兼职app开发网上app开发
  • 接任务做兼职的的网站衡阳手机网站设计
  • 徐州经济开发区网站佛山百度关键词seo外包
  • 肃宁网站建设有限责任公司法人承担什么责任
  • 珠海斗门建设局网站如何免费做网站
  • 自助外贸网站建设可直接打开网站的网页
  • 江苏城嘉建设工程有限公司网站潍坊网站定制公司
  • 四川省住房和城乡建设厅新网站宜昌建设厅网站
  • 建设网站一般流程建设开发网站
  • 设计外贸英文网站国家企业信息信用公信系统
  • 主题资源网站创建时 如何突出设计的特点阿里云是做网站的吗
  • 乌市建设工程质量监督站网站外资公司注册
  • 档案馆网站机房建设做游戏网站打鱼
  • 网站建设平台 创新模式搭建好ftp服务器 如何通过网站访问
  • 苏州集团网站制作设计网页制作软件ai
  • 网站建设新手教程视频教程手帐风格wordpress主题
  • 做投标网站条件网站更改指定字段
  • mvc5 网站开发之美做印刷网站公司
  • 医疗网站建设精英微信网站用什么制作的
  • 银川网站设计联系电话地推加人2元1个
  • 龙华网站 建设深圳信科北京知名的网站建设公司
  • 怎么做qq刷赞网站搜盘 资源网
  • 微网站怎么做的好名字吗陕西省医院网站建设管理