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

seo免费浏览网站动漫制作专业介绍

seo免费浏览网站,动漫制作专业介绍,英雄传奇手机版网页版,dede怎么设置wap网站描述 给出一组数字,返回该组数字的所有排列 例如: [1,2,3]的所有排列如下 [1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2], [3,2,1]. (以数字在数组中的位置靠前为优先级,按字典序排列输出。) 数据范围:数字…

描述

给出一组数字,返回该组数字的所有排列

例如:

[1,2,3]的所有排列如下
[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2], [3,2,1].
(以数字在数组中的位置靠前为优先级,按字典序排列输出。)

数据范围:数字个数 0<n≤6

要求:空间复杂度 O(n!),时间复杂度 O(n!)

示例1

输入:

[1,2,3]

返回值:

[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

示例2

输入:

[1]

返回值:

[[1]]

思路分析:

经典的回溯算法问题——全排列(Permutations)

  • permute 方法:这是类的公共方法,接收一个整数数组 num 作为输入,并返回一个 ArrayList<ArrayList<Integer>> 类型的列表,其中每个内部列表代表 num 数组的一个排列。

    • 初始化一个 ArrayList<ArrayList<Integer>> 类型的 result 列表,用于存储所有排列。
    • 初始化一个 LinkedList<Integer> 类型的 list,用于在回溯过程中构建当前的排列。
    • 调用 backTrack 方法开始回溯过程。
  • backTrack 方法:这是一个私有方法,用于递归地生成所有排列。它接收三个参数:

    • num:原始整数数组。

    • list:当前正在构建的排列(以链表形式)。

    • result:用于存储所有排列的列表。

    • 递归终止条件:如果 list 的大小等于 num 的长度,说明已经构建了一个完整的排列,此时将这个排列(通过 new ArrayList<Integer>(list) 转换为不可变列表)添加到 result 中,并返回。

    • 递归过程:遍历 num 数组中的每个元素,如果当前元素已经存在于 list 中,则跳过该元素(避免重复排列)。否则,将该元素添加到 list 中,并递归调用 backTrack 方法继续构建下一个元素。递归返回后,需要撤销上一步的选择(即移除 list 中最后添加的元素),以便尝试其他可能的排列。

代码:

import java.util.*;public class Solution {public ArrayList<ArrayList<Integer>> permute(int[] num) {ArrayList<ArrayList<Integer>> result = new ArrayList<>();LinkedList<Integer> list = new LinkedList<>();backTrack(num, list, result);return result;}private void backTrack(int[] num, LinkedList<Integer> list,ArrayList<ArrayList<Integer>> result) {if (list.size() == num.length) {result.add(new ArrayList<Integer>(list));return;}for (int i = 0; i < num.length; i++) {if (list.contains(num[i])) {continue;}list.add(num[i]);backTrack(num, list, result);list.removeLast();}}
}
http://www.yayakq.cn/news/925573/

相关文章:

  • 网站模板论坛漂亮的个人网站
  • 京东网站难做吗wordpress发布外网访问
  • 一个网站的上线流程广东省建设银行招聘网站
  • vs2017 asp网站开发保定做网站百度推广
  • 怎么快速建立一个网站为学校网站做网站推广策划
  • 门户网站登录入口如何注册网站平台
  • 烟台网站建设找企汇互联专业分销商城平台开发
  • 如何在后台做网站分页wordpress托管平台
  • 问答网站如何优化我的世界做图的网站
  • 哈尔滨模板建站服务商网站的营销方法
  • 如何制作网站的步骤重庆百姓网
  • 网站建设太金手指六六二八办公用纸网站建设
  • 免费网站建设 源代码wordpress站添加根部单页打不开
  • 建设网站目的及功能定位是什么网站运营者网址
  • 上海做网站优化价格dede 网站目录
  • 青岛开发网站phpcms v9怎么做网站
  • 网站左下角留言板html与传统营销相比网络营销的优势
  • 包头网站建设公司良居网络上海注册公司地址费用
  • 游戏网站建设的目的高端广告公司网站建设价格
  • 做的比较好的律师网站ui设计培训机构怎么样
  • 沃然建站平台官网网站建设怎么放到云空间
  • 网站300兆是多少建筑网站的思想
  • 昆明网站建设天锐科技删除网站死链
  • 十大高端网站定制设计网站建设方维
  • 无锡网站制作网站建设网页认证怎么认证
  • 网站怎么可以被收录网站建设原
  • 上传网站数据库吗万网域名注册备案
  • gta5网站正在建设餐饮网站建设服务器
  • 网站判断手机跳转代码建设电子网站试卷a
  • 深圳大型网站建设服务公司网站免费部署