46 Permutations(全排列Medium)

题目意思:全排列

思路:其实看这题目意思,是不太希望用递归的,不过还是用了递归,非递归的以后再搞吧

  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 };

 

posted @ 2015-06-14 21:54  影翕  阅读(300)  评论(0编辑  收藏  举报