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

思路
1.暴力迭代
时间赋值度:O(nm),空间复杂度:O(nm)

using namespace std;
class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        for(vector<vector<int>>::iterator col = array.begin();col!=array.end();++col){
            for(vector<int>:: iterator row = (*col).begin();row != (*col).end();++row){
                if(*row == target){
                    return true;
                }
            }
        }
        return false;
    }
};//10ms,1492k

2.暴力迭代其实就是遍历搜索,由于整个举证是有序的,考虑折半的思想,但矩阵二维平面怎么折半?(思考一),(思考过程待整理补充)
时间复杂度:O(m+n),空间复杂度:O(n*m)

class Solution {
public:
    bool Find(int target, vector<vector<int> > array) {
        int row = 0;
        int col = array.size() - 1;
        while(row < array[0].size() && col >= 0 && array[col][row] != target){
            while(row < array[0].size() &&  col >= 0 && array[col][row] < target){
                cout<<array[col][row]<<endl;
                ++row;
            }
            while(row < array[0].size() && col >= 0 && array[col][row] > target){
                cout<<array[col][row]<<endl;
                --col;
            }
        }
        cout<<col<<" "<<row<<endl;
        if(col < 0 || row == array[0].size()){
            return false;
        }
        else{
            return true;
        }
    }
};///9ms,1380k