劍指offer編程題-1
阿新 • • 發佈:2018-05-02
length 表行數 subject ++ 查找 bject clas return pub
1.二維數組中的查找
題目描述
在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。 思路:利用二維數組由上到下,由左到右遞增的規律,
那麽選取右上角a[row][col]與target進行比較,如果等於就直接找到,
當target小於元素a[row][col]時,那麽target必定在元素a所在行的左邊,
即col--;
當target大於元素a[row][col]時,那麽target必定在元素a所在列的下邊,
即row++;
public class Solution {
public boolean Find(int target, int [][] array) { int row=0; int col=array[0].length-1; while(row<=array.length-1&&col>=0){ if(target==array[row][col]) return true; else if(target>array[row][col]) row++;else col--; } return false; } }
註意:
對於一個二維數組:
int[][] arr = { {2,3,4}, {4,5,6}, {7,8,9} };
int rows = i.length;//行數
int columns = i[0].length;//列數
[[]]這樣一個數組代表行數是1,列數時0.
劍指offer編程題-1