二维数组中的查找

时间:2021-07-23 00:25:32

题目描述

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
 
输入描述:
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 ;
     }
}