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

推荐一本学做网站的书做网站会什么问题

推荐一本学做网站的书,做网站会什么问题,知名高端网站建设服务商,如何在外管局网站做延期描述 给出一组数字,返回该组数字的所有排列 例如: [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/470636/

相关文章:

  • 回收类型网站如何做关于网站建设的简历模板
  • 云南集优科技网站域名备案查询工具
  • 广州设计周官方网站软件合集大全
  • 网站维护流程图海外购物网
  • 做网站如何写代码免费建立个人网站申请
  • 农庄网站模板西安搬家公司收费标准
  • 营销网站建设哪家便宜广平企业做网站推广
  • 如何做网站ip跳转js面向对象网站开发
  • 网站备案vpn注销gta5买房网站建设中
  • 设计合理的网站网页归档在线建站软件
  • 西双版纳建设厅网站无锡app定制
  • dedecms网站别名南阳网站开发公司
  • 建设淘宝网站需要多少钱项目建设综述
  • 西安市城乡建设管理局网站的公示栏赣州章贡区旅游景点
  • 有没有做任务拿佣金的网站佛山高端网站建设
  • 建设银行广安官方网站wordpress 本地配置文件
  • 网站开发技术主题安装 wordpress多人
  • 西安建设网站公司哪家好厚街公司网站建设
  • 服务器可以做几个网站网站建设优化托管
  • 商城网站建设套餐报价上位机软件开发培训
  • 中小企业网站建设与管理课件百度云wordpress显示上传目录
  • 官方网站建设公详情页制作网站
  • 福州++网站建设软件开发工程师证书图片
  • 北京平台网站建设多少钱wordpress移动支付免费
  • 地产集团网站建设神马移动排名优化
  • 有了域名后怎样做网站网站调用新浪微博
  • 用ps设计网站做多大的自适应平台网站模板
  • 公司网站建设与管理的作用定制wordpress主题多少钱
  • vue.js合作做网站么wordpress 标签禁用
  • 广州shopify代建站怎么样给网站的服务器续费