劍指4 二維陣列的查詢

2021-10-06 18:39:45 字數 999 閱讀 7764

題目:在乙個 n * m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。

1.判斷是否為空,除了mat.size( )以外,不要忘了本身為乙個vector

(mat.empty( ) || mat[0].empty( ) )

如果輸入為指標,和行列,

bool found=false;

if(mat != nullptr && row>0 && col>0)

return found;

2.注意二維陣列的特殊結構,從右上角開始掃瞄,如過target比它大,則向下一行,如果比它小,則向左移一行。

整個時間複雜度為o(m+n),

3.注意,**千萬不要超下標了,**j= mat[0].size()-1

4.引用,就是同名

5.陣列的指標也可以**名稱,一樣使用

6.while( )判斷的時候,一定是&&

bool

findin2darray

(vectorint>>

& matrix,

int target)

return

false

;}

//寫**的時候還是要注意工整,下面的**就很優美

bool

find

(int

* mat,

int row,

int col,

int t )

else

if(mat[i]

[j]> t) j--

;else i++;}

return found;

}}

劍指Offer No 4 二維陣列的查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。從右上角進行查詢,如果找到則返回,如果當前值小於目標值則往前面一列繼續查詢,如果當前值大於目標值則往下面一行繼...

劍指offer 4二維陣列的查詢

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

二維陣列查詢(劍指offer)

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。解法一 因為每一行都是遞增的,直接對每一行進行二分查詢即可。public class solution if ...