劍指offer第一題二維陣列中的查詢
阿新 • • 發佈:2018-11-15
大家好,博主是個東北人哈爾濱那嘎達的,在實習中吧,感覺自己學習之路賊拉長,學習又沒樂趣,感覺工作中的人都感覺我都東北話好玩兒,
那我就用東北話來分享一些知識和學習成果,這樣既進步又有趣,以下有什麼不對的歡迎大家呲噠我。
以後每天分享兩個劍指offer題目java的實現方法。。加油!
題目描述
在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。基本思路,從左到右是遞增,從上到下也是遞增,先面這張圖是例子
所以我們只要把想要查詢的數字比較,從左下角開始查詢,所以迴圈從最後一行第一個開始迴圈,如果等於當前值直接返回true,如果要查詢的值小於當前值就向上找i--
如果要查詢的值大於當前值就向右找就是i不變j++
public class Solution { public boolean Find(int target, int [][] array) { int i,j; int rowCount=array.length; int colCount=array[0].length; for(i=rowCount-1,j=0;i>=0&&j<colCount;) {if(target == array[i][j]) return true; if(target < array[i][j]) { i--; continue; } if(target > array[i][j]) { j++; continue; } } return false; } }
歡迎大家指正,評論一起成長一起進步