Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution46 {
- public:
- std::vector<std::vector<int>> permute(std::vector<int> nums)
- {
- std::vector<std::vector<int>> result;
- std::sort(nums.begin(), nums.end());
- int swapIndex;
- do
- {
- swapIndex = -1;
- result.push_back(nums);
- for (int i = nums.size() - 2; i >= 0; --i)
- {
- if (nums[i] < nums[i + 1])
- {
- swapIndex = i;
- break;
- }
- }
- if (swapIndex != -1)
- {
- for (int i = nums.size() - 1; i >= 0; --i)
- {
- if (nums[i] > nums[swapIndex])
- {
- std::swap(nums[i], nums[swapIndex]);
- break;
- }
- }
- std::reverse(nums.begin() + swapIndex + 1, nums.end());
- }
- } while (swapIndex != -1);
- return result;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement