10000 2017 8.30 · pythonpeixun/interview_python@c271662 · GitHub
[go: up one dir, main page]

Skip to content

Commit c271662

Browse files
committed
2017 8.30
1 parent c1571c8 commit c271662

File tree

1 file changed

+34
-28
lines changed

1 file changed

+34
-28
lines changed

Readme.md

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1402,45 +1402,51 @@ print binary_search(mylist,3)
14021402
## 11 快排
14031403

14041404
```python
1405-
def qsort(seq):
1406-
if seq==[]:
1407-
return []
1405+
#coding:utf-8
1406+
def quicksort(list):
1407+
if len(list)<2:
1408+
return list
14081409
else:
1409-
pivot=seq[0]
1410-
lesser=qsort([x for x in seq[1:] if x<pivot])
1411-
greater=qsort([x for x in seq[1:] if x>=pivot])
1412-
return lesser+[pivot]+greater
1413-
1414-
if __name__=='__main__':
1415-
seq=[5,6,78,9,0,-1,2,3,-65,12]
1416-
print(qsort(seq))
1410+
midpivot = list[0]
1411+
lessbeforemidpivot = [i for i in list[1:] if i<=midpivot]
1412+
biggerafterpivot = [i for i in list[1:] if i > midpivot]
1413+
finallylist = quicksort(lessbeforemidpivot)+[midpivot]+quicksort(biggerafterpivot)
1414+
return finallylist
1415+
1416+
print quicksort([2,4,6,7,1,2,5])
14171417
```
14181418

1419+
递归基本思想: http://blog.csdn.net/morewindows/article/details/6684558
1420+
14191421
## 12 找零问题
14201422

1423+
14211424
```python
1422-
def coinChange(values, money, coinsUsed):
1423-
#values T[1:n]数组
1424-
#valuesCounts 钱币对应的种类数
1425-
#money 找出来的总钱数
1426-
#coinsUsed 对应于目前钱币总数i所使用的硬币数目
1427-
for cents in range(1, money+1):
1428-
minCoins = cents #从第一个开始到money的所有情况初始
1429-
for value in values:
1430-
if value <= cents:
1431-
temp = coinsUsed[cents - value] + 1
1432-
if temp < minCoins:
1425+
1426+
#coding:utf-8
1427+
#values是硬币的面值values = [ 25, 21, 10, 5, 1]
1428+
#valuesCounts 钱币对应的种类数
1429+
#money 找出来的总钱数
1430+
#coinsUsed 对应于目前钱币总数i所使用的硬币数目
1431+
1432+
def coinChange(values,valuesCounts,money,coinsUsed):
1433+
#遍历出从1到money所有的钱数可能
1434+
for cents in range(1,money+1):
1435+
minCoins = cents
1436+
#把所有的硬币面值遍历出来和钱数做对比
1437+
for kind in range(0,valuesCounts):
1438+
if (values[kind] <= cents):
1439+
temp = coinsUsed[cents - values[kind]] +1
1440+
if (temp < minCoins):
14331441
minCoins = temp
14341442
coinsUsed[cents] = minCoins
1435-
print('面值为:{0} 的最小硬币数目为:{1} '.format(cents, coinsUsed[cents]) )
1443+
print ('面值:{0}的最少硬币使用数为:{1}'.format(cents, coinsUsed[cents]))
14361444

1437-
if __name__ == '__main__':
1438-
values = [ 25, 21, 10, 5, 1]
1439-
money = 63
1440-
coinsUsed = {i:0 for i in range(money+1)}
1441-
coinChange(values, money, coinsUsed)
14421445
```
14431446

1447+
思路: http://blog.csdn.net/wdxin1322/article/details/9501163
1448+
方法: http://www.cnblogs.com/ChenxofHit/archive/2011/03/18/1988431.html
1449+
14441450
## 13 广度遍历和深度遍历二叉树
14451451

14461452
给定一个数组,构建二叉树,并且按层次打印这个二叉树

0 commit comments

Comments
 (0)
0