劍指offer——01二維數組中的查找(Python3)

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

思路:本題中的二維數組從左到右,從上到下依次遞增,即每一行的最後一個數字爲最大,每一列的最下數字爲最大。函數

在查找過程當中總共分爲兩種狀況:blog

一、查找數字小於比較數字,說明查找數字在比較數字的左邊排序

二、查找數字大於比較數字,說明查找數字在比較數字的下邊get

以查找7爲例:io

代碼:class

import timeclass Solution:    def find(self,target,array):        '''        :param target: 查找目標數字        :param array: 傳入列表        :return: 0/1        '''        arrlen = len(array)#列表長度,肯定行數        col = len(array[0])-1#肯定一行中最大列數        if arrlen>0 and col>1:#判斷矩陣            row = 0            while row <arrlen and col >=0:#循環終止條件                if array[row][col] <target:#若是目標數大於矩陣中的數                    row = row+1                elif array[row][col] >target:                    col = col - 1                else:                    return True            return False        else:            return False
相關文章
相關標籤/搜索