매일 한 문제씩 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에 따라 라이센스가 부여됩니다.