46. Permutations
Runtime: 12 ms, faster than 98.08% of C++ online submissions for Permutations.
Memory Usage: 9.5 MB, less than 48.25% of C++ online submissions for Permutations.
class Solution {
public:
vector<vector<int>> permute(vector<int>& nums) {
vector<int> v(nums.size());
vector<int> vec;
p(vec, nums, v);
return result;
}
void p(vector<int>& vec, vector<int>& nums, vector<int>& v)
{
if (vec.size() == nums.size())
{
result.push_back(vec);
return;
}
for (int i = 0; i < nums.size(); i++)
{
if (v[i] == 0)
{
v[i] = 1;
vec.push_back(nums[i]);
p(vec, nums, v);
v[i] = 0;
vec.pop_back();
}
}
}
private:
vector<vector<int>> result;
};