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

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

Given a list of numbers, return all possible permutations.

 

Example

For nums = [1,2,3], the permutations are:

[  [1,2,3],  [1,3,2],  [2,1,3],  [2,3,1],  [3,1,2],  [3,2,1]]
Challenge

Do it without recursion.

 

class Solution {    /**     * @param nums: A list of integers.     * @return: A list of permutations.     */    public ArrayList
> permute(ArrayList
nums) { // write your code here ArrayList
> result = new ArrayList
>(); if(nums == null || nums.size() == 0) return result; ArrayList
line = new ArrayList
(); boolean[] visited = new boolean[nums.size()]; helper(result, line, visited, nums); return result; } public void helper(ArrayList
> result, ArrayList
line, boolean[] visited, ArrayList
nums){ if(line.size() == nums.size()){ result.add(new ArrayList
(line)); return; } for(int i = 0; i < nums.size(); i++){ if(!visited[i]){ line.add(nums.get(i)); visited[i] = true; helper(result, line, visited, nums); line.remove(line.size() - 1); visited[i] = false; } } return; } }

 

转载于:https://www.cnblogs.com/goblinengineer/p/5351890.html

你可能感兴趣的文章
Maven+IDEA+testNG测试框架学习(一)
查看>>
利用jQuery-UI和jsPlumb实现拖拽连接模型
查看>>
php 二维数组去重
查看>>
用html5实现音频播放器
查看>>
在python中独立运行orm
查看>>
HttpRunnerManager使用说明
查看>>
黑马程序员—多线程
查看>>
DataGrid
查看>>
hdu-1559 最大子矩阵(二维树状数组模板题)
查看>>
第一个超级简单Node.js实例
查看>>
单元测试
查看>>
js-JavaScript高级程序设计学习笔记19
查看>>
ubuntu12.04 登录黑屏
查看>>
js实战之-求一个字符串中最多出现的字符数
查看>>
【MySQL故障处理】 Seconds_Behind_Master= NULL Error_code: 1197
查看>>
杨锦锋师兄博士毕业答辩
查看>>
英文原版课程一些连接
查看>>
iOS textfield实现一行的数字限制,超出进行弹框
查看>>
WordCount
查看>>
进程之同步、互斥PV操作笔记
查看>>