二維數組中的查找

題目數組

        在一個二維數組中,每一行都按照從左到右遞增的順序排序, 每一列都按照從上到下遞增的順序排序,完成一個函數,輸入這樣的二維數組和一個整數 ,判斷數組中是否有該整數。函數

解題思路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

參考代碼

      

相關文章
相關標籤/搜索