在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路
牛客网中是用一个嵌套的向量表示的,这样更加的直观。从右上角开始考虑,如果目标比右上角的要小,那么排除这一列;如果目标比右上角的大,那么排除这一行;
代码
class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
int row = array.size(); // 行
int column = array[0].size(); //列
int x = 0,y=column-1;
while(y>=0 && x<column){
if(target == array[x][y]) return true;
else if(target <array[x][y]) y--;
else x++;
}
return false;
}
};
来源:CSDN
作者:天杪
链接:https://blog.csdn.net/qq_15046309/article/details/104077072