题目意思:全排列
思路:其实看这题目意思,是不太希望用递归的,不过还是用了递归,非递归的以后再搞吧
ps:vector这玩意不能随便返回,开始递归方法用vector,直接到500ms,换成void,到12ms
1 class Solution { 2 public: 3 vector<vector<int>> permute(vector<int>& nums) { 4 vector<vector<int> >ans; 5 permute1(ans,nums,0); 6 return ans; 7 } 8 void permute1(vector<vector<int>>& ans,vector<int>& nums,int begin) { 9 if(begin==nums.size()-1){ 10 ans.push_back(nums); 11 } 12 for(int i=begin;i<nums.size();++i){ 13 swap(nums[i],nums[begin]); 14 permute1(ans,nums,begin+1); 15 swap(nums[i],nums[begin]); 16 } 17 } 18 };
原文:http://www.cnblogs.com/smallby/p/4575791.html