题意:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
时间限制:1秒 空间限制:32768K
分析:
1、从矩阵左下角的元素开始查找,假设当前为第i行第j列。
2、若target比其小,则target一定不在第i行和第i行之下的行中,因此,往上查找,--i。
3、若target比其大,则target一定不在第j列和第j列左面的列中,因此,往右查找,++j。
4、不断缩小查找范围。
class Solution { public: bool Find(int target, vector<vector<int> > array) { int r = array.size(); int c = array[0].size(); int i = r - 1; int j = 0; while(i >= 0 && j < c){ if(target < array[i][j]){ --i; } else if(target > array[i][j]){ ++j; } else if(target == array[i][j]){ return true; } } return false; } };