怒刷 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超還准!