二維數組查找 java

題目描述:

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

解題思路:

從數組的右上角(左下角)開始查找java

  • 若是要查找的數字小於右上角,則行數減1,即去掉右上角所在列
  • 若是要查找的數字大於右上角,則列數加1,即去掉右上角所在列
  • 若是要查找的數字等於右上角,返回

左上角同理,就再也不贅述了。數組

圖示:

java實現:

public boolean Find(int target, int [][] array) { int rows = array.length - 1,cols = array[0].length - 1,firstrows = 0; boolean flag = false; if(rows<=0 || cols<=0) System.out.println("數組爲空"); else { while(firstrows <= rows && cols >= 0) { if(array[firstrows][cols]>target) --cols; else if(array[firstrows][cols]<target) ++firstrows; else { flag = true; break; } } } if(flag==false) return false; else
            return true; }

 

 牛客提交:

    

相關文章
相關標籤/搜索