面试题3 在二维数组中查找
2016-04-22 本文已影响439人
贾雨村甄士隐
题目链接:在二维数组中查找
我的思路
- 逐步缩小矩阵的范围,当矩阵缩小到一个数字的时候,看是否该数字是目标数字。是true,不是false。或者当矩阵的边界恰为目标数字的时候,是true。
- 缩小矩阵范围的方法:从矩阵的右上角开始看,当前数字大于目标数字,则目标数字不会在当前列,当前数字小于目标数字,则目标数字不会在当前行。
-
看图说话
在二维数组中查找.png
实现代码
class Solution {
public:
bool Find(vector<vector<int> > array,int target) {
int row = array.size();
int col = array[0].size();
int i,j;
for (i=0,j=col-1;i<row && j>=0;)
{
if (array[i][j] == target)
{
return true;
}
if (array[i][j] > target)
{
j--;
continue;
}
if (array[i][j] < target)
{
i++;
}
}
return false;
}
};