题目
思路
该二维数组中的一个数,小于它的数一定在其左边,大于它的数一定在其下边。因此,从右上角开始查找,就可以根据 target 和当前元素的大小关系来缩小查找区间,当前元素的查找区间为左下角的所有元素。
考察二分查找
Code
class Solution {
public:
//大于target的数在其下边,小于target的数在其左边
bool Find(int target, vector<vector<int> > array) {
int row = 0, col = array[0].size()-1;
while(row < array.size() && col >= 0) //循环终止条件
{
if(target == array[row][col])
{
return true;
}
else if(target > array[row][col])
{
row++;
}
else if(target < array[row][col])
{
col--;
}
}
return false;
}
}; 
京公网安备 11010502036488号