1. 程式人生 > >劍指offer 3. 二維陣列中的查詢

劍指offer 3. 二維陣列中的查詢

在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。

請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。

樣例

輸入陣列:
[
  [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; } };