07:從一個二維數組中查找一個數

題目:從一個二維數組中查找一個數

數組要求:從左到右,從上到小依次遞增的矩形二維數組
思路:我們從矩陣的右上角開始查找,若該位置的數值小於目標值,列數減一;若數值大於目標值,行數加一,後續重複。

public class Offer07 {
   public static void main(String[] args) {
       int[][] arr = {
   	                {1, 2, 8, 9},
   	                {2, 4, 9, 12},
   	                {4, 7, 10, 13},
   	                {6, 8, 11, 15}
                   };

       System.out.println(searchNumber(arr, 0));
   }

   public static boolean searchNumber(int[][] arr, int target) {
       //判空
       if(arr==null||arr.length==0||arr[0].length==0)return false;
       //定義行 row,列column
       int row = 0;
       int column = arr[0].length-1;
       while (row < arr.length && column >= 0) {
           int number = arr[row][column];
           if (number == target) {
               return true;
           } else if (target < number) {
               column--;
           } else {
               row++;
           }
       }
       return false;
   }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章