算法分析与设计课程(3):【leetcode】Permutations
2017-03-09 18:20
531 查看
Permutations
Description:
Given a collection of distinct numbers, return all possible permutations.
For example,
算法分析:解决这个问题,很容易想到树,一层层地生成。
因此我们可以考虑用递
4000
归的方式。
代码如下:
__author__ = 'andy'
class Solution(object):
def permute(self, nums):
self.result = []
subList = []
self.cal(nums,subList)
return self.result
def cal(self,nums,subList):
#如果子链表跟原链表等长,则加到结果中
if len(nums)==len(subList):
self.result.append(subList[:])
#用递归的方式,得出组合
for a in nums:
if a in subList:
continue
subList.append(a)
self.cal(nums,subList)
subList.remove(a)
case = Solution()
nums =[1,2,3]
print(case.permute(nums))
结果:
Description:
Given a collection of distinct numbers, return all possible permutations.
For example,
[1,2,3]have the following permutations:
算法分析:解决这个问题,很容易想到树,一层层地生成。
因此我们可以考虑用递
4000
归的方式。
代码如下:
__author__ = 'andy'
class Solution(object):
def permute(self, nums):
self.result = []
subList = []
self.cal(nums,subList)
return self.result
def cal(self,nums,subList):
#如果子链表跟原链表等长,则加到结果中
if len(nums)==len(subList):
self.result.append(subList[:])
#用递归的方式,得出组合
for a in nums:
if a in subList:
continue
subList.append(a)
self.cal(nums,subList)
subList.remove(a)
case = Solution()
nums =[1,2,3]
print(case.permute(nums))
结果:
相关文章推荐
- 算法分析与设计课程——LeetCode刷题之Valid Parentheses
- 算法分析与设计课程(5):【leetcode】Search for a Range
- 算法分析与设计课程(16):【leetcode】 Integer to Roman
- 算法分析与设计课程(11):【leetcode】Gray Code
- 算法分析与设计课程——LeetCode刷题之4Sum
- 算法分析与设计课程(15):【leetcode】 Find Minimum in Rotated Sorted Array
- 算法分析与设计课程——LeetCode刷题之Search for a Range
- 算法分析与设计课程(17):【leetcode】4Sum
- 算法分析与设计课程——LeetCode刷题之Merge Two Sorted Lists
- 算法分析与设计课程(10):【leetcode】Simplify Path
- 算法分析与设计课程(7):【leetcode】Reverse Nodes in k-Group
- 算法分析与设计课程(14):【leetcode】 Maximal Square
- 算法分析与设计课程——LeetCode刷题之3Sum
- 算法分析与设计课程——LeetCode刷题之 Spiral Matrix
- 算法分析与设计课程——LeetCode刷题之Remove Duplicates from Sorted Array
- 算法分析与设计课程(8):【leetcode】Sudoku Solver
- 算法分析与设计课程——LeetCode刷题之Reverse Integer
- 算法分析与设计课程——LeetCode刷题之 Rotate Image
- 算法分析与设计课程(12):【leetcode】 Count Complete Tree Nodes
- 算法分析与设计课程——LeetCode刷题之 Merge k Sorted Lists