【Leetcode】【python】Permutations
2017-10-03 11:15
330 查看
题目大意
求一组数的全排列解题思路
回溯,想起来思路很简单,实际写的时候遇到了很多麻烦。代码
正常思路
class Solution(object): def permute(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ result = [] self.get_permute([], nums, result) return result def get_permute(self, current, num, result): if not num: # 如果num里没有数了,加到结果集,结束函数 # print 'benlun:', current, current + [] result.append(current+[]) # 不加[],结果是混乱的,没搞懂 return for i in range(len(num)): current.append(num[i]) # print current, num[:i] + num[i + 1:], 'result', result self.get_permute(current, num[:i] + num[i + 1:], result) # num改为拿走nums[i]后的数列 current.pop()
稍微难理解
class Solution(object): def permute(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ if len(nums) <= 1: return [nums] ans = [] for i, num in enumerate(nums): n = nums[:i] + nums[i+1:] # n是剩余数的list for y in self.permute(n): # 直到函数有return,一个数的时候[nums],所以y是list ans.append([num] + y) return ans
总结
相关文章推荐
- [LeetCode]Permutations II@python
- [LeetCode]题解(python):046-Permutations
- [leetcode]Permutations @ Python
- [leetcode]Permutations II @ Python
- 【LeetCode with Python】 Permutations
- 【LeetCode with Python】 Rotate Image
- [leetcode]LRU Cache @ Python
- 【Leetcode】【python】Integer to Roman
- 168. Excel Sheet Column Title Leetcode Python
- Leetcode 12. Integer to Roman The Solution of Python
- [LeetCode]题解(python):060-Permutation Sequence
- [Leetcode][python]Restore IP Addresses
- python写算法题:leetcode: 3. Longest Substring Without Repeating Characters
- Leetcode_two-sum (c++ and python version)
- 127. Word Ladder Leetcode Python
- LeetCode-Permutations
- Permutations 排序(有重复数)II @LeetCode
- python爬虫抓取LeetCode题目
- [leetcode]Word Search @ Python
- 【LeetCode 1】Two Sum(Python)