博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Permutations leetcode java
阅读量:6787 次
发布时间:2019-06-26

本文共 1123 字,大约阅读时间需要 3 分钟。

题目

Given a collection of numbers, return all possible permutations.

For example,

[1,2,3] have the following permutations:
[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], and [3,2,1].

 

题解

这道题就用循环递归解决子问题。

因为求所有组合,这就意味着不能重复使用元素,要用visited数组。

有因为是所有可能的组合,所以循环length次,就是这里面每位都有可能有length个可能性。

正因为如此,每一层递归就不需要传递一个start点,告诉他从哪开始(因为都是从头开始循环)。

 

代码如下:

 1     
public ArrayList<ArrayList<Integer>> permute(
int[] num) {
 2         ArrayList<ArrayList<Integer>> res = 
new ArrayList<ArrayList<Integer>>();
 3         ArrayList<Integer> item = 
new ArrayList<Integer>();
 4         
 5         
if(num.length==0||num==
null)
 6             
return res;
 7         
boolean[] visited = 
new 
boolean[num.length];  
 8         
 9         permutation_helper(num,res,item,visited);
10         
return res;
11     }
12     
13     
public 
void permutation_helper(
int[] num, ArrayList<ArrayList<Integer>> res, ArrayList<Integer> item,
boolean[] visited){
14         
if(item.size()==num.length){
15             res.add(
new ArrayList<Integer>(item));
16             
return;
17         }
18         
19         
for(
int i = 0; i<num.length;i++){
20             
if(!visited[i]){
21                 item.add(num[i]);
22                 visited[i]=
true;
23                 permutation_helper(num,res,item,visited);
24                 item.remove(item.size()-1);
25                 visited[i]=
false;
26             }
27         }
28     }

 

转载地址:http://fgigo.baihongyu.com/

你可能感兴趣的文章
总结:Linux磁盘分区管理
查看>>
Ext.form.field.CheckBox复选框和Ext.form.field.Radio单选框
查看>>
JNI 实现 Broadcast
查看>>
eclipse 快捷键
查看>>
基础命令学习
查看>>
loading图标
查看>>
sql Left right join 多表 注意表的连接顺序
查看>>
HTML5与CSS3基础教程第八版学习笔记11~15章
查看>>
Redis -- 过期时间 和 缓存 例子
查看>>
babel7-按需加载polyfill
查看>>
Android 权限设置大全1
查看>>
Android eclipse中程序调试
查看>>
博客园博客兼容手机浏览
查看>>
第7题——买苹果
查看>>
disruptor架构四 多生产者多消费者执行
查看>>
C# - 什么是事件绑定?
查看>>
HDU-Fish买电脑 二分查找
查看>>
Rzagovori 贪心
查看>>
LTE第一章 介绍
查看>>
Scala基础篇-04 try表达式
查看>>