题目描述

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

解题思路:

r = 0, c = mat.column

设初始指针(r,c),那么mat[r][c] == target就退出,否则 若 mat[r][c]>target那么我们可以c--,否则r++。直到r,c越出边界为止.

class Solution {
public:
    bool Find(int target, vector<vector<int> > arr) {
        int r = arr.size();
        int c = arr[0].size();
        int poir = 0;
        int poic = c-1;
        int suc = 0;
        while(poir>=0 && poir < r && poic>=0 && poic<c){
            if(arr[poir][poic] == target){
                suc = 1;
                break;
            }
            if(arr[poir][poic]>target){
                poic--;
            }else poir++;
        }
        return suc;
        
    }
};