博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
力扣(LeetCode)46
阅读量:6612 次
发布时间:2019-06-24

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

题目地址:

题目描述:
给定一个没有重复数字的序列,返回其所有可能的全排列。

示例:

输入: [1,2,3]

输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
解答:
利用递归,我们可以认为,求一个数组的全排列,就是把这个数组中的每个位置的元素分别放在数组头部
然后求剩余元素的全排列,递归边界是剩余元素数量为1,也就是说当数组中只剩一个元素的时候,它的全
排列就是它本身。
java ac代码:

class Solution {    List
>ans = new ArrayList(1000); public List
> permute(int[] nums) { perm(nums,0,nums.length-1); return ans; } void perm(int[] nums,int i,int j) { if(i == j) { List
temp = new ArrayList(nums.length); for(int k = 0;k < nums.length;k++)temp.add(nums[k]); ans.add(temp); return; } for(int k = i;k <= j;k++) { swap(nums,i,k); perm(nums,i+1,j); swap(nums,i,k); } } void swap(int[] nums,int i,int j) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; }}

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

你可能感兴趣的文章
CMPT9:如何安装WSUS?
查看>>
从16个小动作看同事性格
查看>>
IO与文件读写---Java的IO流架构
查看>>
Spring 的 HibernateDaoSupport 类的 getSession() 导致的连接泄露问题
查看>>
Shiro,多个角色调用控制器里面方法
查看>>
从零开始教你配置华为3COM路由器
查看>>
ng-if ng-repeat下的ng-model赋值
查看>>
在HTML5 Canvas中放入图片和保存为图片的方法
查看>>
系统日志出错两例
查看>>
使用域账户ssh登录Cisco交换机
查看>>
linux设置其他用户可以访问本用户下的文件夹的权限
查看>>
思科网络路由知识点整理一
查看>>
最近写了2套软件,WEB版的进销存管理系统,服装连锁店管理软件
查看>>
分享一款flash头像编辑上传利器:社交、博客等网站的好插件
查看>>
穿越生命沼泽
查看>>
改善PHP开发方式
查看>>
遍历窗体上的TextBox并赋String.Empty
查看>>
我的友情链接
查看>>
docker搭建一下Nexus
查看>>
java jdbc
查看>>