牛客刷題 劍指offer(1)

2021-08-21 16:26:01 字數 778 閱讀 4652

題目描述

在乙個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。

思路:

1. 找對角線,這樣做比較複雜,因為不一定是方陣。爛思路。

2. 右上角,如果target大於右上角,刪除第一行;如果target小於右上角,刪除最後一列,時間複雜度為o(n)

# -*- coding:utf-8 -*-

class

solution:

# array 二維列表

deffind

(self, target, array):

row, col = 0, len(array[0]) - 1

height = len(array)

while (row < height and col > -1):

if target > array[row][col]:

row += 1

elif target < array[row][col]:

col -= 1

else:

return

true

return

false

# --------test code -----------

test = solution()

result = test.find(16, )

print(result)

牛客劍指offer刷題記錄(七)

演算法導論上應該有這樣的課後題。歸併的思路,假設f i,j 表示陣列i到j的逆序對數,那麼有 f i,j f i k f k 1,j s i j,k 其中s i,j,k 表示逆序對 p q p i k q k 1,j 由於歸併排序,我麼得到兩個有序的子陣列l,r 那麼當出現逆序對 l i r j 時...

牛客劍指offer刷題記錄(五)

鍊錶的指標域中,除了有指向下乙個節點的鍊錶以外,還有乙個指向隨機節點的指標。struct listnode 常規做法,空間換時間。先常規的將拷貝的節點用next串起來,遍歷一遍原始鍊錶,然後尾插法即可。在尾插的同時,建立乙個由原始節點指標p到拷貝節點指標c的乙個map。再次遍歷原始指標,如果指標p指...

牛客網 劍指offer 遞迴 (1)

出現的問題 原因 返回值沒有考慮到所有情況 輸入引數n是乙個整數,自己只考慮n 0,n 1,n 2,n 39的情況,一直報錯。改正方案 加上else,判斷其他情況均輸出0,編譯通過 菲波那切數列數列有很多變形的問題 問題1 兔子問題 題目描述 已知一對兔子每乙個月可以生一對小兔子,而一對兔子出生後....