怒刷 LeetCode 100 道 (46)

怒刷 LeetCode 100 道 (46)

來自專欄編程人生

題目

Description:

Given a collection of distinct integers, return all possible permutations.

Example:

Input: [1,2,3]Output:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]

解法

class Solution: def permute(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ ret = [] self.get_return(nums, [], ret) return [list(map(int, i)) for i in ret] def get_return(self, nums, tmp, ret): if not nums: t = .join(list(map(str, tmp))) ret.append(tmp) return for i in nums: r = nums[:] r.remove(i) self.get_return(r, tmp[:]+[i],ret)

推薦閱讀:

[面試]找到一個元素,可以將數組分成兩個乘積相等的子數組
曆法干支換算收官之作日上起時快演算法文字版獨家首發
大六壬演算法講解
在排序數組中查找數字
68演算法預測胎兒性別,比B超還准!

TAG:編程 | 演算法 | 數據結構 |