LeetCode 46.Permutations
                                            
 1153 단어  backtracking
                    
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로 귀속시키면 됩니다. 중복되지 않도록 주의하십시오.
class Solution {
  public:
    vector<vector<int> > result;
    vector<vector<int> > permute(vector<int> &num) {
        vector<int> tempresult;// 
        dfs(num, tempresult);
        return result;
    }
    void dfs(vector<int> &num, vector<int> &tempresult) {
        if(tempresult.size() == num.size()) {
            result.push_back(tempresult);
            return;
        }
        for(int i = 0; i < num.size(); ++i) {
            auto index = find(tempresult.begin(), tempresult.end(), num[i]);
            if(index == tempresult.end()) { // 
                tempresult.push_back(num[i]);
                dfs(num, tempresult);
                tempresult.pop_back();
            }
        }
    }
};이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Leetcode 22. 괄호 생성n 쌍의 괄호가 주어지면 잘 구성된 괄호의 모든 조합을 생성하는 함수를 작성하십시오. 이 솔루션은 역추적을 사용합니다. 역추적은 가능한 모든 조합을 반복하는 체계적인 방법입니다. 이러한 유형의 문제는 유사한 패턴을 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.