二維數組中的查找

題目描述

在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。
 
輸入描述:
array: 待查找的二維數組
target:查找的數字

輸出描述:
查找到返回true,查找不到返回false
 
public class Solution {
     public boolean Find( int [][] array, int target) {
         int m = array.length;
         int n = array[ 0 ].length;
         
         if (m == 0 || n == 0 ) {
             return false ;
         }
         
         if (target < array[ 0 ][ 0 ] || target > array[m - 1 ][n - 1 ]) {
             return false ;
         }
         
         int i = 0 ;
         int j = n - 1 ;
         
         while (i < m && j >= 0 ) {
             if (target < array[i][j]) {
                 j--;
             } else if (target > array[i][j]) {
                 i++;
             } else {
                 return true ;
             }
         }
         return false ;
     }
}
相關文章
相關標籤/搜索