Skip to content

Commit

Permalink
Merge pull request #13 from BillBillBillBill/master
Browse files Browse the repository at this point in the history
修正锚点以及台阶问题代码
  • Loading branch information
taizilongxu committed Feb 24, 2016
2 parents 49e8654 + 6cda37c commit 954f61b
Showing 1 changed file with 110 additions and 109 deletions.
219 changes: 110 additions & 109 deletions Readme.md
Original file line number Diff line number Diff line change
@@ -1,114 +1,115 @@
<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-generate-toc again -->
**Table of Contents**

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

<!-- markdown-toc end -->

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

### 4 链接

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

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

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

## 18 socket

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

```python
fib = lambda n: 1 if n <= 2 else fib(n - 1) + fib(n - 2)
fib = lambda n: n if n <= 2 else fib(n - 1) + fib(n - 2)
```

第二种记忆方法

```python
def memo(func):
cache={}
cache = {}
def wrap(*args):
if args not in cache:
cache[args]=func(*args)
cache[args] = func(*args)
return cache[args]
return wrap


@memo
def fib(i):
if i<2:
if i < 2:
return 1
return fib(i-1)+fib(i-2)
return fib(i-1) + fib(i-2)
```

第三种方法

```python
def fib(n):
a, b = 0, 1
while a < n:
print a,
a, b = b, a + b
print
fib(1000)
for _ in xrange(n):
a, b = b, a + b
return b
```

## 2 变态台阶问题

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

```python
fib = lambda n: i if n < 2 else 2 * fib(n - 1)
fib = lambda n: n if n < 2 else 2 * fib(n - 1)
```

## 3 矩形覆盖
Expand Down

0 comments on commit 954f61b

Please sign in to comment.