劍指offer 3. 二維陣列中的查詢
阿新 • • 發佈:2019-01-01
在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。
請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。
樣例
輸入陣列:
[
[1,2,8,9],
[2,4,9,12],
[4,7,10,13],
[6,8,11,15]
]
如果輸入查詢數值為7,則返回true,
如果輸入查詢數值為5,則返回false。
陣列中的數array[i][j]滿足第j列i行下面的數全都大於它,第i行j列左邊的數全都小於它
class Solution {
public:
bool searchArray (vector<vector<int>> array, int target) {
if(array.empty()) return false;
int n = array.size(), m = array[0].size();
int x = 0, y = m - 1;
while(y>=0 && x<n){
if(array[x][y] == target) return true;
if(target > array[x] [y]) x ++;
else y --;
}
return false;
}
};