推導相關

1. 臺階問題

一隻青蛙一次能夠跳上1級臺階,也能夠跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。數組

def f(n):
    a, b = 0, 1
    for i in range(n):
        a, b = b, a+b
    return b

2. 變態臺階問題

一隻青蛙一次能夠跳上1級臺階,也能夠跳上2級……它也能夠跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。函數

def f(n):
    b = 1
    for i in range(n-1):
        b = 2*b
    return b

3. 矩形覆蓋

咱們能夠用2*1的小矩形橫着或者豎着去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法spa

def f(n):
    a, b = 0, 1
    for i in range(n):
        a, b = b, a+b
    return b

4. 楊氏矩陣查找

在一個m行n列二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。code

def yang(l, target):
    m = len(l) - 1
    i = 0
    j = len(l[i]) - 1
    while i <= m and j >= 0:
        val = l[i][j]
        if target == val:
            return True
        elif target > val:
            i += 1
        elif target < val:
            j -= 1
    return False
相關文章
相關標籤/搜索