1. 程式人生 > >【leetcode】74. Search a 2D Matrix & 240. Search a 2D Matrix II

【leetcode】74. Search a 2D Matrix & 240. Search a 2D Matrix II

tro break amp 如果 bre 最大 column code ima

題目如下:這兩個題目可以用同樣的代碼來解答,因此就合並在一起了。

題目一:

技術分享圖片

題目二:

技術分享圖片

解題思路:兩個題目的唯一區別在於第二個題目下一行的最小值不一定會小於前一行的最大值。但是不管怎麽樣我們可以確定的是,如果某一行的最小值都比target要大,那麽這一行之後的值都比target要大。如果target介於某一行的最小值和最大值之間,那麽target有可能在這一行。至於如何判斷target是否存在,因為數組有序,用二分查找即可。

代碼如下:

class Solution(object):
    def searchMatrix(self, matrix, target):
        import
bisect ROW = len(matrix) if ROW == 0: return False COLUMN = len(matrix[0]) if COLUMN == 0: return False for i in matrix: if i[0] <= target and i[-1] >= target: inx = bisect.bisect_left(i,target)
if i[inx] == target: return True elif i[0] > target: break return False

【leetcode】74. Search a 2D Matrix & 240. Search a 2D Matrix II