1. 程式人生 > >劍指offer[二維陣列查詢]

劍指offer[二維陣列查詢]

劍指offer[二維陣列查詢]

題目描述

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

思路

從二維陣列的左下角開始查詢,如果target大的話,j指標向右移動。相反,i指標向上移動。

程式碼

public class Solution {
    public boolean
Find(int target, int [][] array) { int rowsNum=array.length; int colsNum=array[0].length; int i=rowsNum-1; int j=0; while(i>=0&&j<colsNum){ if(target>array[i][j]){ j++; }else if(target<array[i][j]){ i--; }else{ return true
; } } return false; } }

細節知識

  • 二維陣列只有length屬性,length() 方法用於返回字串的長度。
  • 陣列A.length表示陣列的行數。
  • 陣列A[i].length表示陣列第i行的長度。