4/06/2014

Leetcode -- Permutations

class Solution {  
 public:  
   vector<vector<int> > permute(vector<int> &num) {  
     return permuteHelper(num, num.size() - 1);  
   }  
   vector<vector<int> > permuteHelper(vector<int>& num, int index) {  
     vector<vector<int> > result;  
     if(index == 0) {  
      vector<int> entry{num[index]};  
      result.emplace_back(entry);  
     } else {  
       auto ret = permuteHelper(num, index - 1);  
       for(auto& entry: ret) {  
         for(int i = 0; i <= entry.size(); ++i) {  
           vector<int> newEntry(entry);  
           newEntry.insert(newEntry.begin() + i, num[index]);  
           result.emplace_back(newEntry);  
         }  
       }  
     }  
     return result;  
   }  
 };  

No comments: