劍指Offer--二維陣列的查詢
阿新 • • 發佈:2018-12-21
題目描述
在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。
思路一:暴力搜尋。
public class Solution { public boolean Find(int target, int [][] array) { for(int i = 0 ; i < array.length ; i ++){ for(int j = 0 ; j < array[i].length ;j++){ if(array[i][j] == target) return true; } } return false; } }
思路二:
public class Solution { public boolean Find(int target, int [][] array) { if(array.length == 0 || array[0].length == 0) return false; int height = array.length - 1; int width = array[0].length - 1; int w = width ; int h = 0 ; while(w>=0 && h<=height){ if(array[h][w]==target) return true; else if(array[h][w] > target) { w--; }else{ h++; } } return false; } }