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에 따라 라이센스가 부여됩니다.