https://leetcode.com/problems/permutations/
Input: nums = [1,2,3]
Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
void BT(int index, vector<vector<int>>& output, vector<int>& nums)
{
if (index == nums.size())
{
output.emplace_back(nums);
return;
}
else
{
for (int i = index; i < nums.size(); ++i)
{
std::swap(nums[i], nums[index]);
BT(index + 1, output, nums);
std::swap(nums[i], nums[index]);
}
}
}
class Solution {
public:
vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int>> output;
BT(0, output, nums);
return output;
}
};
Runtime: 4 ms, faster than 78.01% of C++ online submissions for Permutations.
Memory Usage: 7.7 MB, less than 80.11% of C++ online submissions for Permutations.