JZ 04 二維陣列中的查詢(陣列 雙指標)

2021-10-20 19:03:50 字數 981 閱讀 3183

不考慮有序的特點,直接遍歷整個二維陣列

class

solution

int rows = matrix.length, columns = matrix[0]

.length;

for(

int i =

0; i < rows; i++)}

}return

false;}

}

該二維陣列可以看做乙個根在右上角的排序二叉樹。

利用二維陣列元素之間的大小關係,從右上角開始查詢,若當前元素等於目標值直接返回true,若小於目標值,移到下邊一行查詢,若大於目標值,移到左邊一列查詢。

具體演算法步驟:

若陣列為空,返回false

初始化行下標為0,列下標為二維陣列的列數減1

重複以下步驟直至行下標或列下標出界:

獲得當前下標位置的元素num

若num == target,返回true;

若num > target,列下標減1;

若num < target,行下標加1;

若迴圈體執行完畢仍未找到等於target的元素,則返回false

class

solution

int rows = matrix.length, columns = matrix[0]

.length;

int row =

0, column = columns -1;

//右上角元素下標

while

(row < rows && column >=0)

else

if(num > target)

else

}return

false;}

}

04 二維陣列中查詢

在乙個 n m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個高效的函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。示例 1,4,7,11,15 2,5,8,12,19 3,6,9,16,22 10,13,14,17,24 18,2...

04 二維陣列中的查詢

給定乙個二維陣列,其每一行從左到右遞增排序,從上到下也是遞增排序。給定乙個數,判斷這個數是否在該二維陣列中。consider the following matrix 1,4,7,11,15 2,5,8,12,19 3,6,9,16,22 10,13,14,17,24 18,21,23,26,30 ...

04 二維陣列中的查詢

題目 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。public class testmethod system.out.println method ar...