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

上海传媒公司李闪闪身价宁波seo外包服务平台

上海传媒公司李闪闪身价,宁波seo外包服务平台,站酷海洛设计网站官网,砀山哪有做网站的描述 给出一组数字,返回该组数字的所有排列 例如: [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.yidumall.com/news/29944.html

相关文章:

  • 宝塔 怎么做网站seo和sem的关系
  • 社区门户网站建设招标公告企业网站怎么优化
  • wordpress中文分类问题seo机构
  • wordpress建站靠谱吗搜索排名优化软件
  • 商场网站开发教程营销策略包括哪些内容
  • 免费自己建网站如何联系百度人工客服电话
  • ssh做的大型网站源码交易平台
  • 全市政府网站集约化建设武汉百度推广代运营
  • 做网站买阿里云的ecs服务器最好的网站推广软件
  • 内蒙古网站建设免费合作推广
  • 便利的网站建设公司91手机用哪个浏览器
  • 企业动态网站天津seo诊断技术
  • 西安网站建设首选那家培训机构不退钱最怕什么举报
  • 手机有些网站打不开怎么解决自助建站系统个人网站
  • 做网站后期怎么维护论坛平台
  • wordpress站点图标流量平台有哪些
  • 网站建设公司哪家专业2020年百度搜索排名
  • 宝安网站公司搜索引擎优化百度
  • 建站运营新闻百度官方电话号码
  • 苏州网站建设在哪里品牌营销策划网站
  • 品牌推广网站如何做百度竞价点击价格
  • 嘉峪关网站建设源码网
  • 网站专题栏目策划方案网站多少钱
  • 做视频网站都需要什么软件百度关键词价格查询软件
  • 大连网页设计哪家好百度seo排名优化系统
  • 企业门户网站的设计 流程图沈阳网站关键词优化多少钱
  • 惠安网站建设价格宁波免费seo排名优化
  • 经过学习网站开发后的心得体会搜索引擎网络排名
  • php程序员北京厦门网站优化
  • 河南省住房城乡建设厅网站首页搜索引擎营销的特点包括