leetcode:Subsets
Note:
For example, If S =
[1,2,3]
, a solution is: [
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
제목 주소:https://oj.leetcode.com/problems/subsets/문제 해결 방법:
이 문제는 두 가지 해법을 풀었다.
해법 1:
S에서 원소를 추가할 때마다 다음 층의 집합 = 이전 층의 집합 + 이전 층의 집합 뒤에 새로 추가된 원소를 추가하기 때문이다.다음과 같습니다.
0----------[ ]
1----------[ ] [1]
2----------[ ] [1] [2] [1 2]
3----------[ ] [1] [2] [1 2] [3] [1 3] [2 3] [1 2 3]
.........
코드:
class Solution {
public:
vector > subsets(vector &S) {
sort(S.begin(),S.end());
vector > ret(1);
for(int i=0;i tmp=ret[j];
tmp.push_back(S[i]);
ret.push_back(tmp);
}
}
return ret;
}
};
해법 2:역귀+거슬러 올라가는 방법으로 이 방법은 코드를 보면 비교적 뚜렷할 수 있다.다른 사람의 코드를 참고했습니다.
class Solution {
public:
vector > ret;
vector > subsets(vector &S) {
ret.clear();
sort(S.begin(),S.end());
vector tmpans;
dfs(S,0,tmpans);
return ret;
}
private:
void dfs(vector &s,int loc,vector &tmp){
if(loc==s.size()){
ret.push_back(tmp);
return;
}
tmp.push_back(s[loc]);
dfs(s,loc+1,tmp);
tmp.pop_back();
dfs(s,loc+1,tmp);
}
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
처음부터 시작하는 LeetCode Day11 「1315. Sum of Nodes with Even-Valued Grandparent」해외에서는 엔지니어의 면접에 있어서 코딩 테스트라고 하는 것이 행해지는 것 같고, 많은 경우, 특정의 함수나 클래스를 주제에 따라 실장한다고 하는 것이 메인이다. 그 대책으로서 LeetCode 되는 사이트에서 대책을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.