[LeetCode] Permutations 解题报告
2016-01-12 11:07
393 查看
Given a collection of numbers, return all possible permutations.
For example,
» Solve this problem
[解题思路]
递归,用标志位记录已使用数字。
For example,
[1,2,3]have the following permutations:
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2], and
[3,2,1].
» Solve this problem
[解题思路]
递归,用标志位记录已使用数字。
[code]1: vector<vector<int> > permute(vector<int> &num) { 2: // Start typing your C/C++ solution below 3: // DO NOT write int main() function 4: vector<vector<int> > coll; 5: vector<int> solution; 6: if(num.size() ==0) return coll; 7: vector<int> visited(num.size(), 0); 8: GeneratePermute(num, 0, visited, solution, coll); 9: return coll; 10: } 11: void GeneratePermute(vector<int> & num, int step, vector<int>& visited, vector<int>& solution, vector<vector<int> >& coll) 12: { 13: if(step == num.size()) 14: { 15: coll.push_back(solution); 16: return; 17: } 18: for(int i =0; i< num.size(); i++) 19: { 20: if(visited[i] == 0) 21: { 22: visited[i] = 1; 23: solution.push_back(num[i]); 24: GeneratePermute(num, step+1, visited, solution, coll); 25: solution.pop_back(); 26: visited[i] =0; 27: } 28: } 29: }
相关文章推荐
- [LeetCode] Permutations II 解题报告
- [LeetCode] Plus One 解题报告
- [LeetCode] Populating Next Right Pointers in Each Node 解题报告
- [LeetCode] Populating Next Right Pointers in Each Node II 解题报告
- [LeetCode] Recover Binary Search Tree 解题报告
- [LeetCode] Pow(x, n) 解题报告
- [LeetCode] Remove Duplicates from Sorted Array 解题报告
- [LeetCode] Remove Duplicates from Sorted Array II 解题报告
- [LeetCode] Remove Duplicates from Sorted List 解题报告
- [LeetCode] Remove Element 解题报告
- Attribute is missing the Android namespace prefix(属性是失踪的Android名称空间前缀)
- Codeforces Round #309 (Div. 2) C
- JavaScript正则表达式
- kohana安装总结
- vs2005中microsoft ado data control 6.0控件问题
- AC自动机 LA 4670 Dominating Patterns
- pt-table-checksum 针对某个库做数据校验
- 什么是可重入锁
- LeetCode:Isomorphic Strings
- Ubuntu下MySql配置