这题和之前做的剑指offer上的字符串全排列。一样。
分析[1]:如果原始要排列的数组顺序为1、2、3、4,现在只要分别交换1、2,1、3,1、4然后对剩下的3个元素进行递归的排列。

46. 全排列
自己的code:100%

class Solution {
 public:
	 vector<vector<int>>res;
	 void helper(vector<int>& nums, vector<int>& Temp, int start)
	 {
		 if (start == (nums.size() - 1))
		 {
			 res.push_back(nums);
			 return;
		 }
		 if (start > nums.size() - 1)return;
		 for (int i = start; i < nums.size(); i++)
		 {
			 swap(nums[i], nums[start]);
			 helper(nums, Temp, start + 1);
			 swap(nums[i], nums[start]);
		 }
	 }
	 vector<vector<int>> permute(vector<int>& nums) {
		 vector<int> Temp;
		 helper(nums, Temp, 0);
		 return res;
	 }
 };

[1]https://blog.csdn.net/u013309870/article/details/68941284

相关文章:

  • 2021-07-23
  • 2021-07-22
  • 2021-06-24
  • 2021-06-02
  • 2021-08-26
  • 2022-12-23
猜你喜欢
  • 2021-10-02
  • 2021-12-30
  • 2021-08-09
相关资源
相似解决方案