#include <iostream>
#include <vector>
using namespace std;


//思路:先拿右上角的元素与待查找元素比较,如果该元素等于待查找元素,返回true;如果该元素小于待查找元素,行数加一;如果该元素小于待查找元素,列数减一。
class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        if(array.size() == 0)
            return false;
        int row = 0;
        int rows = array.size();        // 行
        int colunms = array[0].size();  // 列
        int colunm = colunms - 1;

        while(row < rows && colunm >= 0)
        {
            if(target == array[row][colunm])
                return true;
            else if(target > array[row][colunm])
                row++;
            else
                colunm--;
        }
        return false;
    }
};

int main()
{
    vector<vector<int> > v;
    vector<int> a;
    for(int i=0;i<8;i++)
        a.push_back(i);
    for(int j=0;j<3;j++)
        v.push_back(a); 
    Solution so;
    cout<<so.Find(0, v)<<endl;
}