LeetcodePython46: Permutations

# -*- coding: utf8 -*-
'''
__author__ = [email protected]'

46: Permutations
https://leetcode.com/problems/permutations/

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].

=== Comments by Dabay===
DFS.
注意的问题是,
加入到res结果集中的时候,做一个l的拷贝。
DSF之后恢复l的状态。
'''

class Solution:
# @param num, a list of integer
# @return a list of lists of integers
def permute(self, num):
res = []
self.DFS(res, [], num)
return res

def DFS(self, res, l, nums):
if len(nums) == 0:
res.append(list(l))
for i in xrange(len(nums)):
l.append(nums[i])
self.DFS(res, l, nums[:i] + nums[i+1:])
l.pop()

def main():
sol = Solution()
num = [1, 2, 3]
print sol.permute(num)

if __name__ == "__main__":
import time
start = time.clock()
main()
print "%s sec" % (time.clock() - start)
更多相关文章
一周排行
  • fastcgi配置 我们这里说的fastcgi配置专指nginx对fastcgi的配置,fastcgi本身的配置介绍在fastcgi 安装文中有说明. nginx的fastcgi模块提供的命令 fastcgi_pas ...
  • 談談impress.js初步理解
    1.对impress.js认识 impress.js 采用 CSS3 与 JavaScri
  • 前一篇博客最后介绍了KVC 再json 转模型时遇到一些问题.今天接着来介绍KVC 的其他用法.其实我们在一开始的时候就一直再强调命名的重要性.命名规范是KVC 存活的基础.如果没有这个条件支撑,那么KVC使用起来就
  • 偶尔看到了document.referrer,之前一直有点疑惑与window.opener 和 window.parent之间的区别 首先查了一下w3cSCHOOL, 上面的解释:referrer 属性可返回载入当前 ...
  • 7.解决方案一:调整buffer cache [email protected]>alter system set sga_max_size=804m scope=spfile; //重启数据库 [email protected] ...
  • 44.小專案:QQ聊天界面 M部分
    - CZMessage.h - #import <Foundation/Founda ...
  • 第一步:找到文件:\source\class\block\portal\block_article.php找到这个方法:function getdata($style, $parameter)将其修改为:functi
  • ol3从根本上进行了重新设计,相对于ol2,他符合现代浏览器的一些设计理念,使用了js新的特性,initial版本的目的是支持原来ol2的大多数功能,支持公网上流行的缓存切片,支持常见的矢量数据格式.支持多种投影并且
  • 比较简单的动态规划啦,以前学动规时讲过,还知道另外一种方法,如果是求最大的矩形的话就只能用另外一中了,代码长些. /* ID: modengd1 PROG: bigbrn LANG: C++ */ #include
  • JQuery上傳插件uploadify整理(Options)
    下载  现在有两个版本了,我此次使用的依然是Flash版本的,虽然现在绝大部分浏览器都兼容