劍指offer 二維陣列中的查詢

2021-09-07 01:27:11 字數 1068 閱讀 4628

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

自己的思路實在是傻×了,先看下正確思路吧

把當前數字定位在第一行,最後一列。如果數字小則增大行,如果數字大則減小列!o(m+n)

bool find3(vectorint> > array,int

target)

return

false

; }

我自己二分查詢的思路,每次扔掉一半o(log(mn)),超級繁瑣,也ac了

bool find(vectorint> > array,int

target)

cright =r;

}//對限定區域的第一列進行二分查詢,定位剛好小於target值的行

u = rup, d =rdown;

if(array[u][cleft] > target) //

所有的都大於target

return

false

;

else

rdown =d;

}//對限定區域的最後一行進行二分查詢,定位剛好大於target值的列

l = cleft, r =cright;

if(array[rdown][r] < target) //

所有的都小於target

return

false

;

else

cleft =l;

}//對限定區域的最後一列查詢,定位剛好大於target值的行

u = rup, d =rdown;

if(array[d][cright] < target) //

所有的都小於target

return

false

;

else

rup =u;}}

return

false; //

沒找到 }

劍指offer 二維陣列中查詢

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

劍指offer 二維陣列中查詢

從今天開始每天一題,除了節假日。在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。class solution return false class solut...

劍指offer 二維陣列中查詢

要求如下 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數 示例如下 7,1,2,8,9 2,4,9,12 4,7,10,13 6,8,11,15 思路有三種,...