leetcode46-Permutations

2024-05-05 22:04
文章标签 permutations leetcode46

本文主要是介绍leetcode46-Permutations,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
示例 1:
输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

分析

求全排列,我们可以用递归的思路,反复交换第一个元素和其它元素的位置然后如果这个时候我们已经有了后面元素的全排列,那么这个数组的全排列数据就已经有了

import java.util.ArrayList;
import java.util.List;public class permutations {private static List<List<Integer>> res = new ArrayList();public static void main(String[] args) {int[] arr = {1,2,3};getRank(arr,0,arr.length);for(List<Integer> lis : res) {for(Integer data:lis) {System.out.print(data + " ");}System.out.println();}}public static void getRank(int[] arr,int start,int len) {if(start+1==len) {List<Integer> lis = new ArrayList();for(int i = 0;i<len;i++) {lis.add(arr[i]);}res.add(lis);return;}for(int i = start;i<len;i++) {int tmp = arr[start];arr[start] = arr[i];arr[i] = tmp;getRank(arr,start+1,len);tmp = arr[start];arr[start] = arr[i];arr[i] = tmp;}}
}

这篇关于leetcode46-Permutations的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/962786

相关文章

LeetCode 46 Permutations + LeetCode 47 Permutations II

题意: 给出一串(46题)不重复or(47题)有重复的数字,要求输出所有排列。 思路: 有没有重复不影响思路 = =。 代码展示为46题提交结果,47题一样过…… 可以偷懒用next_permutation方法也可以自己实现,实现方法为从后往前找第一个出现的nums[i] < nums[i+1],从i后面找出比nums[i]稍大一点的数字nums[x],交换nums[i]和nums[

leetcode 刷题之路 12 Permutations

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]. 全排列问题,详细分析参考这篇文章

Leetcode94: Permutations

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]. 解题思路:字符交换加dfs。 将第

leetcode46:全排列

全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 List<List<Integer>> list = new ArrayList<>();public List<List<Integer>> permute(int[] nums) {LinkedList<Integer> res = new LinkedList<>();for (i

46. Permutations, 47. Permutations II

Given a collection of distinct 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], [3,2,1] ] 无重复数

UVa 11077 Find the Permutations / 置换

把一个排列p变成1,2,...,n可以反过来看成1,2,...,n到p 把p分解乘循环 如果一个循环有n个元素 需要n-1次交换 dp[i][j] = dp[i-1][j] + dp[i-1][j-1] * (i-1); 代表i个元素 交换j次变成1,2,...,n,的种数 对于元素i 他可以自己成为一个循环那么交换次数不变 种数+1 就是 dp[i-1][j]

codeforces 463D Gargari and Permutations

题意: 从所给的序列中找出它们的最长公共子序列。 思路: DAG(有向无环图)+BFS。 如果数值 i 在所有序列中都在 j 前面。则i -> j连一条有向边。(好像还有个dp的思路的) 参考:http://www.cnblogs.com/hujunzheng/p/3947392.html AC代码: #include <cstdio>#include <cstring>#i

leetcode之全排列问题(Permutations)

在leetcode上,跟Permutations有关的题目: 31 Next Permutation46 Permutations 一.31 Next Permutation   31题是排列的入门题,给出[1,2,3,4],需给出下一排列[1,2,4,3]。这题有固定的解法,给定排序nums[n]=[1,4,2,7,6,5,3],n=0~6: 从序号6开始往前寻找第一对严格递减(即找到第

Codeforces #264 (Div. 2) D. Gargari and Permutations

Gargari got bored to play with the bishops and now, after solving the problem about them, he is trying to do math homework. In a math book he have foundk permutations. Each of them consists of number

LeetCode Permutations II

Given a collection of numbers that might contain duplicates, return all possible unique permutations. For example, [1,1,2] have the following unique permutations: [1,1,2], [1,2,1], and [2,1,1]. 题