【LeetCode with Python】 Permutations
2008-09-13 00:39
232 查看
博客域名:http://www.xnerv.wang
原题页面:https://oj.leetcode.com/problems/permutations/
题目类型:递归,回溯
难度评价:★★
本文地址:/article/1377562.html
Given a collection of numbers, return all possible permutations.
For example,
一道递归回溯的题目,所以跟大多数递归回溯题目类似的解法。只有一点值得注意一下,由于需要从一个集合中挑选出元素,然后下一次递归从剩余的元素中继续挑选,所以必须能够记忆和区分出当前已经选出了哪些元素。这里的做法是每次把选择的元素与当前列表中第一个元素交换,然后将除第一个元素外的子列表传递给下一次递归作为其需要处理的当前列表。
原题页面:https://oj.leetcode.com/problems/permutations/
题目类型:递归,回溯
难度评价:★★
本文地址:/article/1377562.html
Given a collection of numbers, return all possible permutations.
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].
一道递归回溯的题目,所以跟大多数递归回溯题目类似的解法。只有一点值得注意一下,由于需要从一个集合中挑选出元素,然后下一次递归从剩余的元素中继续挑选,所以必须能够记忆和区分出当前已经选出了哪些元素。这里的做法是每次把选择的元素与当前列表中第一个元素交换,然后将除第一个元素外的子列表传递给下一次递归作为其需要处理的当前列表。
class Solution: def doPermute(self, num_list): if 1 == len(num_list): return [ num_list ] res_list = [ ] for i in range(0, len(num_list)): num_list[0], num_list[i] = num_list[i], num_list[0] sub_res_list = self.doPermute(num_list[1:]) list_head = [ num_list[0] ] new_list = [ list_head + list for list in sub_res_list] res_list.extend(new_list) return res_list # @param num, a list of integer # @return a list of lists of integers def permute(self, num): return self.doPermute(num)
相关文章推荐
- 【LeetCode with Python】 Copy List with Random Pointer
- 【LeetCode with Python】 N-Queens II
- 【LeetCode with Python】 Sort Colors
- 【LeetCode 11】Container With Most Water (Python)
- 【LeetCode with Python】 Populating Next Right Pointers in Each Node II
- 【LeetCode with Python】 Longest Consecutive Sequence
- 【LeetCode with Python】 Sum Root to Leaf Numbers
- leetcode_[python/C++]_395_Longest Substring with At Least K Repeating Characters_(递归非递归)
- 【LeetCode with Python】 Path Sum
- leetcode 日经贴,python code -Copy List with Random Pointer
- 【LeetCode with Python】 Wildcard Matching
- 【LeetCode with Python】 Swap Nodes in Pairs
- 【LeetCode with Python】 Pow(x, n)
- 【LeetCode with Python】 Binary Tree Inorder Traversal
- 【LeetCode with Python】 Evaluate Reverse Polish Notation
- 【LeetCode with Python】 Spiral Matrix
- 【LeetCode with Python】 Convert Sorted Array to Binary Search Tree
- 【LeetCode with Python】 Partition List
- 【LeetCode with Python】 Single Number II
- LeetCode 30. Substring with Concatenation of All Words----Python实现