題目描述
在一個二維數(shù)組中(每個一維數(shù)組的長度相同)初婆,每一行都按照從左到右遞增的順序排序蓬坡,每一列都按照從上到下遞增的順序排序猿棉。請完成一個函數(shù),輸入這樣的一個二維數(shù)組和一個整數(shù)屑咳,判斷數(shù)組中是否含有該整數(shù)萨赁。
基本思想
從左下角查找,如果target大于右方元素兆龙,往右查找杖爽;如果target小于上方元素,往上查找紫皇。
Python
# -*- coding:utf-8 -*-
class Solution:
? ? # array 二維列表
? ? def Find(self, target, array):
? ? ? ? n = len(array) - 1? # [0,n]行索引
? ? ? ? m = len(array[0]) - 1 # [0,m]列索引
? ? ? ? i,j = n, 0
? ? ? ? while i >= 0 and j <= m:
? ? ? ? ? ? if target < array[i][j]:
? ? ? ? ? ? ? ? i -= 1
? ? ? ? ? ? elif target > array[i][j]:
? ? ? ? ? ? ? ? j += 1
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? return True
? ? ? ? return False
python中二維數(shù)組的創(chuàng)建
? ? ? ? # array = [ [0] * m for i in range(n) ] n行m列
? ? ? ? # len(array) = n 若考慮索引慰安,則n-1
? ? ? ? # len(array[0]) = m 若考慮索引,則m-1