class Solution {
public:
vector<vector<int> > permuteUnique(vector<int> &num) {
set<vector<int> > result(getPermute(num));
vector<vector<int> > ret(result.begin(), result.end());
return ret;
}
set<vector<int> > getPermute(vector<int>& num) {
set<vector<int> > result;
if(num.size() == 1) {
result.insert(num);
} else if(num.size() > 1) {
vector<int> temp(num.begin(), num.end() - 1);
int extra = num[num.size() - 1];
auto ret = getPermute(temp);
for(auto item : ret) {
for(int i = 0; i < item.size() + 1; ++i) {
vector<int> cp(item);
cp.insert(cp.begin() + i,extra);
result.insert(cp);
}
}
}
return result;
}
};
4/08/2014
Leetcode -- Permutations II
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment