8888- [ 编程题] ( # )
8989 - [ 1 台阶问题/斐波纳挈] ( #1- )
9090 - [ 2 变态台阶问题] ( #2- )
91- - [ 矩形覆盖] ( # )
92- - [ 2 杨氏矩阵查找] ( #2- )
93- - [ 3 去除列表中的重复元素] ( #3- )
94- - [ 4 链表成对调换] ( #4- )
95- - [ Definition for singly-linked list.] ( #definition-for-singly-linked-list )
96- - [ class ListNode:] ( #class-listnode )
97- - [ def __ init__ (self, x):] ( #def-initself-x )
98- - [ self.val = x] ( #selfval--x )
99- - [ self.next = None] ( #selfnext--none )
100- - [ 创建字典的方法] ( # )
91+ - [ 3 矩形覆盖] ( #3- )
92+ - [ 4 杨氏矩阵查找] ( #4- )
93+ - [ 5 去除列表中的重复元素] ( #5- )
94+ - [ 6 链表成对调换] ( #6- )
95+ - [ 7 创建字典的方法] ( #7- )
10196 - [ 1 直接创建] ( #1- )
10297 - [ 2 工厂方法] ( #2- )
10398 - [ 3 fromkeys()方法] ( #3-fromkeys )
104- - [ dict={'x':-1,'y':-1}] ( #dictx-1y-1 )
105- - [ dict2={'x': None , 'y': None }] ( #dict2xnone-ynone )
106- - [ 合并两个有序列表] ( # )
107- - [ 交叉链表求交点] ( # )
99+ - [ 8 合并两个有序列表] ( #8- )
100+ - [ 9 交叉链表求交点] ( #9- )
108101- [ Definition for singly-linked list.] ( #definition-for-singly-linked-list )
109102- [ class ListNode:] ( #class-listnode )
110103- [ def __ init__ (self, x):] ( #def-initself-x )
111104- [ self.val = x] ( #selfval--x )
112105- [ self.next = None] ( #selfnext--none )
113- - [ 二分查找] ( # )
114- - [ 快排] ( # )
115- - [ 找零问题] ( # )
116- - [ 广度遍历和深度遍历二叉树] ( # )
117- - [ 二叉树节点] ( # )
118- - [ 层次遍历] ( # )
119- - [ 深度遍历] ( # )
120- - [ 前中后序遍历] ( # )
121- - [ 求最大树深] ( # )
122- - [ 求两棵树是否相同] ( # )
123- - [ 前序中序求后序] ( # )
106+ - [ 10 二分查找] ( #10- )
107+ - [ 11 快排] ( #11- )
108+ - [ 12 找零问题] ( #12- )
109+ - [ 13 广度遍历和深度遍历二叉树] ( #13- )
110+ - [ 14 二叉树节点] ( #14- )
111+ - [ 15 层次遍历] ( #15- )
112+ - [ 16 深度遍历] ( #16- )
113+ - [ 17 前中后序遍历] ( #17- )
114+ - [ 18 求最大树深] ( #18- )
115+ - [ 19 求两棵树是否相同] ( #19- )
116+ - [ 20 前序中序求后序] ( #20- )
124117- [ 重建] ( # )
125118- [ 后序遍历] ( # )
126- - [ 单链表逆置] ( # )
119+ - [ 21 单链表逆置] ( #21- )
127120
128121<!-- markdown-toc end -->
129-
130-
131122
132123# Python面试题集
133124
@@ -990,7 +981,7 @@ fib(1000)
990981fib = lambda n : i if n < 2 else 2 * fib(n - 1 )
991982```
992983
993- ## 矩形覆盖
984+ ## 3 矩形覆盖
994985
995986我们可以用` 2*1 ` 的小矩形横着或者竖着去覆盖更大的矩形。请问用n个` 2*1 ` 的小矩形无重叠地覆盖一个` 2*n ` 的大矩形,总共有多少种方法?
996987
@@ -1000,11 +991,11 @@ fib = lambda n: i if n < 2 else 2 * fib(n - 1)
1000991f = lambda n : 1 if n < 2 else f(n - 1 ) + f(n - 2 )
1001992```
1002993
1003- ## 2 杨氏矩阵查找
994+ ## 4 杨氏矩阵查找
1004995
1005996在一个m行n列二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
1006997
1007- ## 3 去除列表中的重复元素
998+ ## 5 去除列表中的重复元素
1008999
10091000用集合
10101001
@@ -1039,16 +1030,15 @@ l2 = []
10391030
10401031面试官提到的,先排序然后删除.
10411032
1042- ## 4 链表成对调换
1033+ ## 6 链表成对调换
10431034
10441035` 1->2->3->4 ` 转换成` 2->1->4->3 ` .
10451036
10461037``` python
1047- # Definition for singly-linked list.
1048- # class ListNode:
1049- # def __init__(self, x):
1050- # self.val = x
1051- # self.next = None
1038+ class ListNode :
1039+ def __init__ (self , x ):
1040+ self .val = x
1041+ self .next = None
10521042
10531043class Solution :
10541044 # @param a ListNode
@@ -1062,7 +1052,7 @@ class Solution:
10621052 return head
10631053```
10641054
1065- ## 创建字典的方法
1055+ ## 7 创建字典的方法
10661056
10671057### 1 直接创建
10681058
@@ -1082,12 +1072,12 @@ dict1=dict((['name','earth'],['port','80']))
10821072
10831073``` python
10841074dict1= {}.fromkeys((' x' ,' y' ),- 1 )
1085- # dict={'x':-1,'y':-1}
1075+ dict = {' x' :- 1 ,' y' :- 1 }
10861076dict2= {}.fromkeys((' x' ,' y' ))
1087- # dict2={'x':None, 'y':None}
1077+ dict2= {' x' :None , ' y' :None }
10881078```
10891079
1090- ## 合并两个有序列表
1080+ ## 8 合并两个有序列表
10911081
10921082知乎远程面试要求编程
10931083
@@ -1129,7 +1119,7 @@ def loop_merge_sort(l1, l2):
11291119 return tmp
11301120```
11311121
1132- ## 交叉链表求交点
1122+ ## 9 交叉链表求交点
11331123
11341124去哪儿的面试,没做出来.
11351125
@@ -1163,7 +1153,7 @@ def node(l1, l2):
11631153 l2 = l2.next
11641154```
11651155
1166- ## 二分查找
1156+ ## 10 二分查找
11671157
11681158``` python
11691159def binarySearch (l , t ):
@@ -1186,7 +1176,7 @@ if __name__ == '__main__':
11861176 print binarySearch(l, 13 )
11871177```
11881178
1189- ## 快排
1179+ ## 11 快排
11901180
11911181``` python
11921182def qsort (seq ):
@@ -1203,7 +1193,7 @@ if __name__=='__main__':
12031193 print (qsort(seq))
12041194```
12051195
1206- ## 找零问题
1196+ ## 12 找零问题
12071197
12081198``` python
12091199def coinChange (values , money , coinsUsed ):
@@ -1228,12 +1218,12 @@ if __name__ == '__main__':
12281218 coinChange(values, money, coinsUsed)
12291219```
12301220
1231- ## 广度遍历和深度遍历二叉树
1221+ ## 13 广度遍历和深度遍历二叉树
12321222
12331223给定一个数组,构建二叉树,并且按层次打印这个二叉树
12341224
12351225``` python
1236- # 二叉树节点
1226+ # 14 二叉树节点
12371227class Node (object ):
12381228 def __init__ (self , data , left = None , right = None ):
12391229 self .data = data
@@ -1242,7 +1232,7 @@ class Node(object):
12421232
12431233tree = Node(1 , Node(3 , Node(7 , Node(0 )), Node(6 )), Node(2 , Node(5 ), Node(4 )))
12441234
1245- # 层次遍历
1235+ # 15 层次遍历
12461236def lookup (root ):
12471237 stack = [root]
12481238 while stack:
@@ -1252,7 +1242,7 @@ def lookup(root):
12521242 stack.append(current.left)
12531243 if current.right:
12541244 stack.append(current.right)
1255- # 深度遍历
1245+ # 16 深度遍历
12561246def deep (root ):
12571247 if not root:
12581248 return
@@ -1265,11 +1255,11 @@ if __name__ == '__main__':
12651255 deep(tree)
12661256```
12671257
1268- ## 前中后序遍历
1258+ ## 17 前中后序遍历
12691259
12701260深度遍历改变顺序就OK了
12711261
1272- ## 求最大树深
1262+ ## 18 求最大树深
12731263
12741264``` python
12751265def maxDepth (root ):
@@ -1278,7 +1268,7 @@ def maxDepth(root):
12781268 return max (maxDepth(root.left), maxDepth(root.right)) + 1
12791269```
12801270
1281- ## 求两棵树是否相同
1271+ ## 19 求两棵树是否相同
12821272
12831273``` python
12841274def isSameTree (p , q ):
@@ -1290,7 +1280,7 @@ def isSameTree(p, q):
12901280 return False
12911281```
12921282
1293- ## 前序中序求后序
1283+ ## 20 前序中序求后序
12941284
12951285推荐: http://blog.csdn.net/hinyunsin/article/details/6315502
12961286
@@ -1314,7 +1304,7 @@ def deep(root):
13141304 print root.data
13151305```
13161306
1317- ## 单链表逆置
1307+ ## 21 单链表逆置
13181308
13191309``` python
13201310class Node (object ):
0 commit comments