1. 程式人生 > >劍指Offer--二維陣列的查詢

劍指Offer--二維陣列的查詢

題目連結 

題目描述

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

思路一:暴力搜尋。

public class Solution {
    public boolean Find(int target, int [][] array) {

            for(int i = 0 ; i < array.length ; i ++){
                for(int j = 0 ; j < array[i].length ;j++){
                    if(array[i][j] == target)
                        return true;
                }
            }
        return false;
    }
}

思路二:

public class Solution {
    public boolean Find(int target, int [][] array) {
            if(array.length == 0 || array[0].length == 0)
                return false;
        
           int height  = array.length - 1;
           int  width = array[0].length - 1;
           int w = width ;
           int h = 0 ;
           while(w>=0 && h<=height){
              if(array[h][w]==target)
                  return true;
               else if(array[h][w] > target)
               {
                   w--;
               }else{
                   h++;
           }
          }
        return false;
    }
}