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

开发一个大型网站多少钱现在有哪些培训学校

开发一个大型网站多少钱,现在有哪些培训学校,陈村九江网站建设,青岛网站设计公司优质博文:IT-BLOG-CN 一、题目 给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例…

优质博文:IT-BLOG-CN

一、题目

给定一个不含重复数字的数组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 中的所有整数 互不相同

二、代码

全排列的长度就是数据长度的阶层,排列和组合的区别:排列中[1,2]和[2,1]是不同的,但在组合中[1,2]和[2,1]是相同的。

我们已简单的[1,2,3]为一组,看下排列的搜索树:

解题思路:
【1】使用数组path记录路径上的数(已选数字)
【2】集合s记录剩余未选的数

回溯三问:
【1】当前操作?从s中枚举path[i]要填入的数字x
【2】子问题?构造排列 >= i 的部分,剩余未选数字集合为s
【3】下一个子问题?构造排列 >= i + 1 部分,剩余未选数字结合为s-{x}

class Solution {// 入参private int[] nums;// 返回值private final List<List<Integer>> resList = new ArrayList<>();// 返回值中包的Listprivate List<Integer> path;// 过滤 j 使用private boolean[] onPath;public List<List<Integer>> permute(int[] nums) {this.nums = nums;path = Arrays.asList(new Integer[nums.length]);onPath = new boolean[nums.length];dfs(0);return resList;}// 回溯方法private void dfs(int i) {// 回溯方法的退出条件if (i == nums.length) {// 这里需要copy path, 不能直接赋值,因为path一直变化resList.add(new ArrayList(path));System.out.println("resList : " + resList.toString());return;}// 每个i进来,组装一次结果for (int j = 0; j < nums.length; j++) {// 过滤j,原因在循环中有说明if (!onPath[j]) {// 当 i 递增时,j也在递增path.set(i, nums[j]);System.out.println(path.toString());// 回溯 (此时,i= 1调用的时候,j还是0,所以需要过滤掉j=0,因此添加 onPath 的Boolean数组)onPath[j] = true;dfs(i+1);// 当i遍历完成之后,需要恢复现场onPath[j] = false;}}}
}

看下输出的流程:

[1, null, null]
[1, 2, null]
[1, 2, 3]
resList : [[1, 2, 3]]
[1, 3, 3]
[1, 3, 2]
resList : [[1, 2, 3], [1, 3, 2]]
[2, 3, 2]
[2, 1, 2]
[2, 1, 3]
resList : [[1, 2, 3], [1, 3, 2], [2, 1, 3]]
[2, 3, 3]
[2, 3, 1]
resList : [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1]]
[3, 3, 1]
[3, 1, 1]
[3, 1, 2]
resList : [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2]]
[3, 2, 2]
[3, 2, 1]
resList : [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]

附视频讲解

时间复杂度: O(n⋅n!),其中nnums的长度。搜索树中的节点个数低于3⋅n!。实际上,精确值为⌊e⋅n!⌋,其中e=2.718⋯为自然常数。每个非叶节点要花费O(n)的时间遍历onPath数组,每个叶结点也要花费O(n)的时间复制path数组,因此时间复杂度为O(n⋅n!)
空间复杂度: O(n)返回值的空间不计入。

http://www.dt0577.cn/news/35230.html

相关文章:

  • 天堂tv在线观看免费日照网站优化公司
  • 荆州网站开发排名优化网站建设
  • 网站建设和网络优化请示seo人才网
  • 顺营销官方网站太原seo关键词排名
  • 动漫人物做羞羞事的网站最新黑帽seo培训
  • php网站后台密码破解工具网站后台用户名密码破解关键词排名优化方法
  • 郴州网站建设系统sem和seo是什么职业岗位
  • 网站建设织梦怎么样google seo实战教程
  • 做网站的公司怎样收费公司宣传网站制作
  • 南阳微网站制作百度seo快排软件
  • 做微信广告网站宁波seo自然优化技术
  • 用flash做网站超链接2024年1月新冠高峰期
  • 电大网上作业代做网站小学生收集的新闻10条
  • 大连市网站建设今日发生的重大新闻
  • 国内做免费的视频网站产品质量推广营销语
  • 赤峰做网站的网络公司推广是什么意思
  • wordpress 商城系统长沙网站seo分析
  • zblog搭建网站seo优化公司如何做
  • 有没有专门做包装设计的网站百度广告联盟价格
  • 怎么改一个网站的关键词密度品牌推广策略
  • jsp动态网站开发视频手机端关键词排名免费软件
  • 深圳+服装+网站建设百度竞价排名收费标准
  • 宁波哪里有网站建设广州最新消息今天
  • 如何上传网页到网站网络推广的平台
  • 微网站是用什么开发的夜狼seo
  • 手机网站 底部菜单百度爱采购排名
  • wordpress检查全站链接黄页88网官网
  • 企业是做网站还是做微信湖南长沙疫情最新消息
  • 河北沧州做网站的电话网站怎么推广
  • 邢台企业做网站哪家好seo分析师