Skip to content

Commit 954f61b

Browse files
committed
Merge pull request taizilongxu#13 from BillBillBillBill/master
修正锚点以及台阶问题代码
2 parents 49e8654 + 6cda37c commit 954f61b

File tree

1 file changed

+110
-109
lines changed

1 file changed

+110
-109
lines changed

Readme.md

Lines changed: 110 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -1,114 +1,115 @@
11
<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-generate-toc again -->
22
**Table of Contents**
33

4-
- [Python语言特性](#python)
5-
- [1 Python的函数参数传递](#1-python)
6-
- [2 Python中的元类(metaclass)](#2-pythonmetaclass)
7-
- [3 @staticmethod@classmethod](#3-staticmethodclassmethod)
8-
- [4 类变量和实例变量](#4-)
9-
- [5 Python自省](#5-python)
10-
- [6 字典推导式](#6-)
11-
- [7 Python中单下划线和双下划线](#7-python)
12-
- [8 字符串格式化:%和.format](#8-format)
13-
- [9 迭代器和生成器](#9-)
4+
- [Python语言特性](#python语言特性)
5+
- [1 Python的函数参数传递](#1-python的函数参数传递)
6+
- [2 Python中的元类(metaclass)](#2-python中的元类metaclass)
7+
- [3 @staticmethod@classmethod](#3-staticmethod和classmethod)
8+
- [4 类变量和实例变量](#4-类变量和实例变量)
9+
- [5 Python自省](#5-python自省)
10+
- [6 字典推导式](#6-字典推导式)
11+
- [7 Python中单下划线和双下划线](#7-python中单下划线和双下划线)
12+
- [8 字符串格式化:%和.format](#8-字符串格式化和format)
13+
- [9 迭代器和生成器](#9-迭代器和生成器)
1414
- [10 `*args` and `**kwargs`](#10-args-and-kwargs)
15-
- [11 面向切面编程AOP和装饰器](#11-aop)
16-
- [12 鸭子类型](#12-)
17-
- [13 Python中重载](#13-python)
18-
- [14 新式类和旧式类](#14-)
19-
- [15 `__new__``__init__`的区别](#15-newinit)
20-
- [16 单例模式](#16-)
21-
- [1 使用`__new__`方法](#1-new)
22-
- [2 共享属性](#2-)
23-
- [3 装饰器版本](#3-)
24-
- [17 Python中的作用域](#17-python)
25-
- [18 GIL线程全局锁](#18-gil)
26-
- [19 协程](#19-)
27-
- [20 闭包](#20-)
28-
- [21 lambda函数](#21-lambda)
29-
- [22 Python函数式编程](#22-python)
30-
- [23 Python里的拷贝](#23-python)
31-
- [24 Python垃圾回收机制](#24-python)
32-
- [1 引用计数](#1-)
33-
- [2 标记-清除机制](#2--)
34-
- [3 分代技术](#3-)
35-
- [25 Python的List](#25-pythonlist)
36-
- [26 Python的is](#26-pythonis)
37-
- [27 read,readline和readlines](#27-readreadlinereadlines)
38-
- [28 Python2和3的区别](#28-python23)
39-
- [操作系统](#)
40-
- [1 select,poll和epoll](#1-selectpollepoll)
41-
- [2 调度算法](#2-)
42-
- [3 死锁](#3-)
43-
- [4 程序编译与链接](#4-)
44-
- [1 预处理](#1-)
45-
- [2 编译](#2-)
46-
- [3 汇编](#3-)
47-
- [4 链接](#4-)
48-
- [5 静态链接和动态链接](#5-)
49-
- [6 虚拟内存技术](#6-)
50-
- [7 分页和分段](#7-)
51-
- [分页与分段的主要区别](#)
52-
- [8 页面置换算法](#8-)
53-
- [9 边沿触发和水平触发](#9-)
54-
- [数据库](#)
55-
- [1 事务](#1-)
56-
- [2 数据库索引](#2-)
57-
- [3 Redis原理](#3-redis)
58-
- [4 乐观锁和悲观锁](#4-)
15+
- [11 面向切面编程AOP和装饰器](#11-面向切面编程aop和装饰器)
16+
- [12 鸭子类型](#12-鸭子类型)
17+
- [13 Python中重载](#13-python中重载)
18+
- [14 新式类和旧式类](#14-新式类和旧式类)
19+
- [15 `__new__``__init__`的区别](#15-__new__和__init__的区别)
20+
- [16 单例模式](#16-单例模式)
21+
- [1 使用`__new__`方法](#1-使用__new__方法)
22+
- [2 共享属性](#2-共享属性)
23+
- [3 装饰器版本](#3-装饰器版本)
24+
- [4 import方法](#4-import方法)
25+
- [17 Python中的作用域](#17-python中的作用域)
26+
- [18 GIL线程全局锁](#18-gil线程全局锁)
27+
- [19 协程](#19-协程)
28+
- [20 闭包](#20-闭包)
29+
- [21 lambda函数](#21-lambda函数)
30+
- [22 Python函数式编程](#22-python函数式编程)
31+
- [23 Python里的拷贝](#23-python里的拷贝)
32+
- [24 Python垃圾回收机制](#24-python垃圾回收机制)
33+
- [1 引用计数](#1-引用计数)
34+
- [2 标记-清除机制](#2-标记-清除机制)
35+
- [3 分代技术](#3-分代技术)
36+
- [25 Python的List](#25-python的list)
37+
- [26 Python的is](#26-python的is)
38+
- [27 read,readline和readlines](#27-readreadline和readlines)
39+
- [28 Python2和3的区别](#28-python2和3的区别)
40+
- [操作系统](#操作系统)
41+
- [1 select,poll和epoll](#1-selectpoll和epoll)
42+
- [2 调度算法](#2-调度算法)
43+
- [3 死锁](#3-死锁)
44+
- [4 程序编译与链接](#4-程序编译与链接)
45+
- [1 预处理](#1-预处理)
46+
- [2 编译](#2-编译)
47+
- [3 汇编](#3-汇编)
48+
- [4 链接](#4-链接)
49+
- [5 静态链接和动态链接](#5-静态链接和动态链接)
50+
- [6 虚拟内存技术](#6-虚拟内存技术)
51+
- [7 分页和分段](#7-分页和分段)
52+
- [分页与分段的主要区别](#分页与分段的主要区别)
53+
- [8 页面置换算法](#8-页面置换算法)
54+
- [9 边沿触发和水平触发](#9-边沿触发和水平触发)
55+
- [数据库](#数据库)
56+
- [1 事务](#1-事务)
57+
- [2 数据库索引](#2-数据库索引)
58+
- [3 Redis原理](#3-redis原理)
59+
- [4 乐观锁和悲观锁](#4-乐观锁和悲观锁)
5960
- [5 MVCC](#5-mvcc)
60-
- [6 MyISAM和InnoDB](#6-myisaminnodb)
61-
- [网络](#)
62-
- [1 三次握手](#1-)
63-
- [2 四次挥手](#2-)
64-
- [3 ARP协议](#3-arp)
65-
- [4 urllib和urllib2的区别](#4-urlliburllib2)
66-
- [5 Post和Get](#5-postget)
67-
- [6 Cookie和Session](#6-cookiesession)
68-
- [7 apache和nginx的区别](#7-apachenginx)
69-
- [8 网站用户密码保存](#8-)
70-
- [9 HTTP和HTTPS](#9-httphttps)
71-
- [10 XSRF和XSS](#10-xsrfxss)
72-
- [11 幂等 Idempotence](#11--idempotence)
73-
- [12 RESTful架构(SOAP,RPC)](#12-restfulsoaprpc)
61+
- [6 MyISAM和InnoDB](#6-myisam和innodb)
62+
- [网络](#网络)
63+
- [1 三次握手](#1-三次握手)
64+
- [2 四次挥手](#2-四次挥手)
65+
- [3 ARP协议](#3-arp协议)
66+
- [4 urllib和urllib2的区别](#4-urllib和urllib2的区别)
67+
- [5 Post和Get](#5-post和get)
68+
- [6 Cookie和Session](#6-cookie和session)
69+
- [7 apache和nginx的区别](#7-apache和nginx的区别)
70+
- [8 网站用户密码保存](#8-网站用户密码保存)
71+
- [9 HTTP和HTTPS](#9-http和https)
72+
- [10 XSRF和XSS](#10-xsrf和xss)
73+
- [11 幂等 Idempotence](#11-幂等-idempotence)
74+
- [12 RESTful架构(SOAP,RPC)](#12-restful架构soaprpc)
7475
- [13 SOAP](#13-soap)
7576
- [14 RPC](#14-rpc)
76-
- [15 CGI和WSGI](#15-cgiwsgi)
77-
- [16 中间人攻击](#16-)
78-
- [17 c10k问题](#17-c10k)
77+
- [15 CGI和WSGI](#15-cgi和wsgi)
78+
- [16 中间人攻击](#16-中间人攻击)
79+
- [17 c10k问题](#17-c10k问题)
7980
- [18 socket](#18-socket)
80-
- [19 浏览器缓存](#19-)
81-
- [20 HTTP1.0和HTTP1.1](#20-http10http11)
81+
- [19 浏览器缓存](#19-浏览器缓存)
82+
- [20 HTTP1.0和HTTP1.1](#20-http10和http11)
8283
- [21 Ajax](#21-ajax)
8384
- [*NIX](#nix)
8485
- [unix进程间通信方式(IPC)](#unixipc)
85-
- [数据结构](#)
86-
- [1 红黑树](#1-)
87-
- [编程题](#)
88-
- [1 台阶问题/斐波纳挈](#1-)
89-
- [2 变态台阶问题](#2-)
90-
- [3 矩形覆盖](#3-)
91-
- [4 杨氏矩阵查找](#4-)
92-
- [5 去除列表中的重复元素](#5-)
93-
- [6 链表成对调换](#6-)
94-
- [7 创建字典的方法](#7-)
95-
- [1 直接创建](#1-)
96-
- [2 工厂方法](#2-)
97-
- [3 fromkeys()方法](#3-fromkeys)
98-
- [8 合并两个有序列表](#8-)
99-
- [9 交叉链表求交点](#9-)
100-
- [10 二分查找](#10-)
101-
- [11 快排](#11-)
102-
- [12 找零问题](#12-)
103-
- [13 广度遍历和深度遍历二叉树](#13-)
86+
- [数据结构](#数据结构)
87+
- [1 红黑树](#1-红黑树)
88+
- [编程题](#编程题)
89+
- [1 台阶问题/斐波纳挈](#1-台阶问题斐波纳挈)
90+
- [2 变态台阶问题](#2-变态台阶问题)
91+
- [3 矩形覆盖](#3-矩形覆盖)
92+
- [4 杨氏矩阵查找](#4-杨氏矩阵查找)
93+
- [5 去除列表中的重复元素](#5-去除列表中的重复元素)
94+
- [6 链表成对调换](#6-链表成对调换)
95+
- [7 创建字典的方法](#7-创建字典的方法)
96+
- [1 直接创建](#1-直接创建)
97+
- [2 工厂方法](#2-工厂方法)
98+
- [3 fromkeys()方法](#3-fromkeys方法)
99+
- [8 合并两个有序列表](#8-合并两个有序列表)
100+
- [9 交叉链表求交点](#9-交叉链表求交点)
101+
- [10 二分查找](#10-二分查找)
102+
- [11 快排](#11-快排)
103+
- [12 找零问题](#12-找零问题)
104+
- [13 广度遍历和深度遍历二叉树](#13-广度遍历和深度遍历二叉树)
104105
- [14 二叉树节点](#14-)
105106
- [15 层次遍历](#15-)
106107
- [16 深度遍历](#16-)
107-
- [17 前中后序遍历](#17-)
108-
- [18 求最大树深](#18-)
109-
- [19 求两棵树是否相同](#19-)
110-
- [20 前序中序求后序](#20-)
111-
- [21 单链表逆置](#21-)
108+
- [17 前中后序遍历](#17-前中后序遍历)
109+
- [18 求最大树深](#18-求最大树深)
110+
- [19 求两棵树是否相同](#19-求两棵树是否相同)
111+
- [20 前序中序求后序](#20-前序中序求后序)
112+
- [21 单链表逆置](#21-单链表逆置)
112113

113114
<!-- markdown-toc end -->
114115

@@ -717,7 +718,7 @@ Bulid过程可以分解为4个步骤:预处理(Prepressing), 编译(Compilation)
717718

718719
### 4 链接
719720

720-
链接的主要内容就是把各个模块直接爱你相互引用的部分处理好,使各个模块可以正确的拼接。
721+
链接的主要内容就是把各个模块之间相互引用的部分处理好,使各个模块可以正确的拼接。
721722
链接的主要过程包块 地址和空间的分配(Address and Storage Allocation)、符号决议(Symbol Resolution)和重定位(Relocation)等步骤。
722723

723724
## 5 静态链接和动态链接
@@ -919,6 +920,7 @@ WSGI, Web Server Gateway Interface,是Python应用程序或框架和Web服务
919920
## 17 c10k问题
920921

921922
所谓c10k问题,指的是服务器同时支持成千上万个客户端的问题,也就是concurrent 10 000 connection(这也是c10k这个名字的由来)。
923+
推荐: http://www.kegel.com/c10k.html
922924

923925
## 18 socket
924926

@@ -977,45 +979,44 @@ AVL是严格平衡树,因此在增加或者删除节点的时候,根据不
977979
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
978980

979981
```python
980-
fib = lambda n: 1 if n <= 2 else fib(n - 1) + fib(n - 2)
982+
fib = lambda n: n if n <= 2 else fib(n - 1) + fib(n - 2)
981983
```
982984

983985
第二种记忆方法
984986

985987
```python
986988
def memo(func):
987-
cache={}
989+
cache = {}
988990
def wrap(*args):
989991
if args not in cache:
990-
cache[args]=func(*args)
992+
cache[args] = func(*args)
991993
return cache[args]
992994
return wrap
993995

996+
994997
@memo
995998
def fib(i):
996-
if i<2:
999+
if i < 2:
9971000
return 1
998-
return fib(i-1)+fib(i-2)
1001+
return fib(i-1) + fib(i-2)
9991002
```
10001003

10011004
第三种方法
10021005

10031006
```python
10041007
def fib(n):
10051008
a, b = 0, 1
1006-
while a < n:
1007-
print a,
1008-
a, b = b, a + b
1009-
print
1010-
fib(1000)
1009+
for _ in xrange(n):
1010+
a, b = b, a + b
1011+
return b
10111012
```
10121013

10131014
## 2 变态台阶问题
10141015

10151016
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
10161017

10171018
```python
1018-
fib = lambda n: i if n < 2 else 2 * fib(n - 1)
1019+
fib = lambda n: n if n < 2 else 2 * fib(n - 1)
10191020
```
10201021

10211022
## 3 矩形覆盖

0 commit comments

Comments
 (0)