매일 한 문제씩 Leet Code [33일차]
제목
서로 다른 숫자의 집합을 제시하고 가능한 모든 배열 조합을 되돌려줍니다.
예를 들어, [1,2,3]에는 다음과 같은 배열 조합이 있습니다.
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
생각
이 문제는 귀착에 써야 한다는 것이 뚜렷하다. 귀착만 할 줄 알면 사고방식은 정상적인 아이들이 알 수 있는 사고방식이다.
(1 2 3)
= 1 + (2 3)∪ 2 + (1 3)∪ 3 + (1 2)
(2 3)
= 2 + (3)∪ 3 + (2)
= 23 ∪ 32
그리고 코드를 보시면 돼요.
코드
코드는 Top Solution에서 가져옵니다.
public class Solution {
public List> permute(int[] nums) {
//
List> list = new ArrayList>();
//
backtrack(list, new ArrayList(), nums);
return list;
}
// :
public void backtrack(List> list, List tempList, int[] nums){
if(tempList.size() == nums.length){
// ArrayList
list.add(new ArrayList(tempList));
} else{
for(int i = 0; i < nums.length; i++){
// ,
if(tempList.contains(nums[i])) continue;
// ,
tempList.add(nums[i]);
backtrack(list, tempList, nums);
tempList.remove(tempList.size() - 1);
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.