博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lintcode 中等题:permutations 全排列
阅读量:6495 次
发布时间:2019-06-24

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

题目

给定一个数字列表,返回其所有可能的排列。

样例

给出一个列表[1,2,3],其全排列为:

[  [1,2,3],  [1,3,2],  [2,1,3],  [2,3,1],  [3,1,2],  [3,2,1]]
挑战

使用递归和非递归分别解决。

解题

深度优先遍历,找到一个保存一个,自己没有写出来,参考 

递归

class Solution {    /**     * @param nums: A list of integers.     * @return: A list of permutations.     */    public ArrayList
> permute(ArrayList
nums) { // write your code here ArrayList
list = new ArrayList
(); ArrayList
> result = new ArrayList
>(); if(nums == null || nums.size() ==0 ) return result; helper(nums,list,result); return result; } public void helper(ArrayList
nums,ArrayList
list,ArrayList
> res){ if(list.size() == nums.size()){ res.add(new ArrayList
(list)); return ; } for(int i=0;i< nums.size();i++){ if(list.contains( nums.get(i))){ continue; } list.add(nums.get(i)); helper(nums,list,res); list.remove(list.size() - 1); } }}
Java Code

 

 

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

你可能感兴趣的文章
[linux基础学习]run level
查看>>
第七周学习总结
查看>>
一步步的教你安装UChome (UChome 安装教程)
查看>>
[DeeplearningAI笔记]序列模型1.5-1.6不同类型的循环神经网络/语言模型与序列生成...
查看>>
P2533 [AHOI2012]信号塔
查看>>
Android电话拨号器(uri格式)与四种设置点击事件的方法
查看>>
java web中对json的使用
查看>>
TYVJ P1051 选课 Label:多叉转二叉&&树形dp(虐心♥)
查看>>
将数据库中提取出来的数据在后台进行分页处理
查看>>
bzoj1034
查看>>
百度地图 鼠标绘制,获取矩形,多边形的顶点经纬度
查看>>
回文树模板
查看>>
struts2之防止表单重复提交
查看>>
【转】Netty系列之Netty并发编程分析
查看>>
cf591d
查看>>
图片存储系统TFS
查看>>
MYSQL备份与恢复
查看>>
贪心/数学 Codeforces Round #212 (Div. 2) A. Two Semiknights Meet
查看>>
Python类__call__()方法
查看>>
「小程序JAVA实战」 小程序wxss样式文件的使用(七)
查看>>