当前位置: 首页 > 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.tj-hxxt.cn/news/45585.html

相关文章:

  • 长春网站建设推广南京seo优化公司
  • 综合性网站建设google推广妙招
  • 温州做网站建设什么推广平台好
  • 邢台做网站优化起名最好的网站排名
  • 徐州企业建站系统长沙网络营销学校
  • 网站单独页面怎么做301重定向买卖平台
  • 公司做网站要多少钱seo常见优化技术
  • 小程序开发和网站开发的区别百度安装app
  • 外贸网站有必要吗外包seo公司
  • 中国设计网站推荐360营销
  • 深圳网站建设哪家口碑好搜狗搜索排名优化
  • 福州网站建设公司哪家比较好seo网上培训多少钱
  • 如何做一个购物网站页面百度在线咨询
  • 石岩网站建设百度推广怎么登陆
  • 怎么重新网站做301万能优化大师下载
  • 做网站找个人google官网注册账号入口
  • 成都学网站建设费用seo排名优化软件有用
  • wordpress页面内容设计盐城seo推广
  • 如何做英文网站推广百度免费收录提交入口
  • 营销型手机网站建设新产品市场推广方案
  • 安徽中颐建设投资有限公司网站网站seo教材
  • 网站举报入口企业网络策划
  • 临沂网站临沂网站制作强强seo博客
  • ru后缀的网站求职seo服务
  • 地方政府网站建设中存在的问题网址之家大全
  • 做纺织的用什么网站推广赚钱app哪个靠谱
  • 陕西省建设网站 五大员过期网站设计的基本原则
  • 有没有免费b2b平台济南公司网站推广优化最大的
  • 智慧团建网站登录入口电脑版武汉百度开户电话
  • 怎么做一考试网站青岛网站建设维护