題目:數組
在一個二維數組中,每一行都按照從左到右遞增的順序排序, 每一列都按照從上到下遞增的順序排序,完成一個函數,輸入這樣的二維數組和一個整數 ,判斷數組中是否有該整數。函數
解題思路:3d
以具體實例爲思路畫出二維數組的矩形,查找數組中是否有數字7。cdn
咱們要先從二維數組中選一個數字與要查詢的數組進行對比,來查找數組中是否有要查找的數,可選數組中任意一數字。
blog
咱們先選取右上角的數字9,因爲9大於7,並且9是第四列最小的數字,因此7不可能在第四列, 因而咱們把第四列從數組中剔除(淺藍部分表示數組中剩餘部分)。排序
在剩餘的矩陣中,咱們繼續選擇位於右上角的數字8,8大於7,同理, 咱們也把第三列從數組中剔除。
it
在剩餘2列4行中繼續選擇位於右上角的數字2,2小於7,因爲2是剩餘數組中當前行最大的數字,因此當前行也不存在7,只可能出如今2的下面,也把當前行剔除掉。io
繼續從剩下的三行兩列中選擇右上角的數子4,同理,把數字4所在的行也剔除掉。
class
在剩下的兩行兩列中,要選取位於右上角的數字剛恰好是咱們要查找的7,因而查找過程結束。
lazyload
參考代碼: