【劍指offer】二維陣列中的查詢
阿新 • • 發佈:2019-01-04
題目描述:
在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。
解題思路:
從矩陣的左下角或右上角開始搜尋,
如果目標<當前矩陣值,那麼目標值肯定不在當前行,在上面的行中
如果目標>當前矩陣值,那麼目標值肯定不在當前列,在右邊的列中
public class Solution { public boolean Find(int target, int [][] array) { if (array == null || array.length == 0 || array[0] == null || array[0].length == 0){ return false; } int m = array.length; int n = array[0].length; int r = m-1; int c = 0; while(r >= 0 && c <= n-1){ if (target < array[r][c]) r--; else if (target > array[r][c]) c++; else return true; } return false; } }