题目
思路
该二维数组中的一个数,小于它的数一定在其左边,大于它的数一定在其下边。因此,从右上角开始查找,就可以根据 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; } };