1. 二維數組中的查找

在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。


思路:因為每行或每列數字是按照順序的,所以我們先劃定范圍,可以漸少計算次數。注意,數組的length是array.length。

先判斷每列的最后一個和我們要找的數字大小,相當于先將光標置于左下角。如果目標數大于光標,則目標一定不在第一列。逐漸向右上角縮小。


public class Solution {

? ? public boolean Find(int target, int [][] array) {

? ? ? ? if (array==null){

? ? ? ? ? ? return false;

? ? ? ? }

? ? ? ? int column = 0;

? ? ? ? int row = array.length-1;

? ? ? ? while(row>=0 && column<=array[0].length-1){

? ? ? ? ? ? if(target>array[row][column]){

? ? ? ? ? ? ? ? column++;

? ? ? ? ? ? }

? ? ? ? ? ? else{

? ? ? ? ? ? ? ? if(target==array[row][column]){

? ? ? ? ? ? ? ? ? ? return true;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? else{

? ? ? ? ? ? ? ? ? ? row--;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? return false;

? ? }

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容