Files
workspace/cpp/algo/permuteUnique.cpp
2026-01-31 14:38:00 +08:00

40 lines
1012 B
C++

#define _ALLOW_COMPILER_AND_STL_VERSION_MISMATCH
#include <iostream>
#include <vector>
#include <unordered_set>
using namespace std;
class Solution {
public:
unordered_set<vector<int>> result;
vector<int> path;
vector<bool> visited;
void dfs(const vector<int>& nums, vector<int>& path, vector<bool>& visited){
if(path.size() == nums.size()) {
result.insert(path);
return;
}
//use index
for(int i = 0; i < nums.size(); i++){
if(!visited[i]){
path.push_back(nums[i]);
visited[i] = true;
dfs(nums, path, visited);
path.pop_back();
visited[i] = false;
}
}
}
vector<vector<int>> permuteUnique(vector<int>& nums) {
visited.resize(nums.size(), false);
dfs(nums, path, visited);
vector<vector<int>> res(result.begin(), result.end());
return res;
}
};
int main(){
}