(java)二維有序陣列中查詢元素
阿新 • • 發佈:2019-02-17
題目大意:
在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。
解題思路:
(1)一看到有序陣列就想到了二分法查詢,而在這個二維陣列中,無法先按行或者先按列查詢
(2)看了一下,不能從左上角和右下角開始查詢和比較元素(不知道向下還是向右)
(3)不能從中間對角線開始比較(二異性)
正確的是:從左下角或者右上角開始比較。(例如右上角)因為這樣元素大就可以向下移動元素小就可以向左移動
程式碼如下:
public class Solution { public boolean Find(int [][] array,int target) { int row=0,col=array[0].length-1; while(row<array.length && col>=0){ if(array[row][col]==target){ return true; }else if(array[row][col]<target){ row++; }else{ col--; } } return false; } }