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

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

Given a collection of distinct integers, return all possible permutations.

Example:

Input: [1,2,3]Output:[  [1,2,3],  [1,3,2],  [2,1,3],  [2,3,1],  [3,1,2],  [3,2,1]]

难度:medium

题目:给定一组集合元素,返回其所有排列数。

思路:递归

Runtime: 3 ms, faster than 70.98% of Java online submissions for Permutations.

Memory Usage: 28 MB, less than 4.36% of Java online submissions for Permutations.

class Solution {    public List
> permute(int[] nums) { List
> result = new ArrayList<>(); permute(nums, 0, new Stack
(), result); return result; } private void permute(int[] nums, int idx, Stack
stack, List
> result) { if (idx == nums.length) { result.add(new ArrayList<>(stack)); return; } for (int i = idx; i < nums.length; i++) { stack.push(nums[i]); swap(nums, i, idx); permute(nums, idx + 1, stack, result); swap(nums, i, idx); stack.pop(); } } private void swap(int[] nums, int i, int j) { int t = nums[i]; nums[i] = nums[j]; nums[j] = t; }}

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

你可能感兴趣的文章
随意而为
查看>>
jQuery监听文本框值改变触发事件(propertychange)
查看>>
Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换
查看>>
HDU--2040
查看>>
zepto返回顶部动画
查看>>
CVBS视频信号解析
查看>>
必要时进行保护性拷贝
查看>>
Codeforces Round #356 (Div. 1) D. Bear and Chase 暴力
查看>>
java内部类
查看>>
甲骨文Java Archive
查看>>
查看数据库错误日志的位置
查看>>
电信网络拓扑图自动布局
查看>>
C#中List〈string〉和string[]数组之间的相互转换
查看>>
yum install 安装 下载好的rpm包 会并依赖包一起安装 zoom电话会议的安装
查看>>
洛谷P1108 低价购买[DP | LIS方案数]
查看>>
通达信里的统计函数及区块背景函数
查看>>
redis主从配置<转>
查看>>
8 行 Node.js 代码实现代理服务器
查看>>
水印,图片验证码
查看>>
C#编程(七十六)----------使用指针实现基于栈的高性能数组
查看>>