[leetcode]46. Permutations 전체 정렬(일반 시퀀스에 중복 요소 없음)
Input: [1,2,3]
Output:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
제목:
전체 정렬 인쇄
Solution1: Backtracking
형식화된 표현 귀속 과정:permutations(nums[0...n-1]) = {숫자를 꺼내라}+permutations(nums[0...n-1] - 이 숫자)
code
1 /*
2 Time: O(n!)
3 Space: O(n!). We allocate space to keep N! paths.
4 */
5
6
7 class Solution {
8 public List> permute(int[] nums) {
9 List> result = new ArrayList<>();
10 // corner case
11 if (nums == null || nums.length == 0) return result;
12 List path = new ArrayList<>();
13 helper(nums, path, result);
14 return result;
15 }
16
17 private void helper(int[] nums, List path, List> result){
18 // base case
19 if(path.size() == nums.length){
20 result.add(new ArrayList<>(path));
21 return;
22 }
23
24 for(int i = 0; i< nums.length; i++){
25 if(path.contains(nums[i])) continue;
26 path.add(nums[i]);
27 helper(nums, path, result);
28 path.remove(path.size() - 1);
29 }
30 }
31 }
다음으로 전송:https://www.cnblogs.com/liuliu5151/p/9201935.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.