劍指offer[二維陣列查詢]
阿新 • • 發佈:2018-11-24
劍指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行的長度。