01: 二维数组中的查找
作者:
iwtbam | 来源:发表于
2019-07-30 16:06 被阅读0次题目描述
- 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。s
输入描述

1.png
解题思路
- 数组从左到右是递增的,从上到下是递增(或者说从下往上是递减的)。所以我们可以从数组的左下角往右上角搜索,如果该位置元素比目标值,就往右移, 反之上移,直到走数组的右上角位置。从数组的右上角往左下角搜索亦可。
AC代码
class Solution{
public:
bool Find(int target, vector<vector<int>> matrix){
size_t row = matrix.size();
if(row == 0)
return false;
size_t col = matrix[0].size();
int x = row - 1, y = 0;
while(x >= 0 && x < row && y >= 0 && y < col)
{
if(matrix[x][y] < target)
y += 1;
else if(matrix[x][y] > target)
x -= 1;
else
return true;
}
return false;
}
};
本文标题:01: 二维数组中的查找
本文链接:https://www.haomeiwen.com/subject/wjynrctx.html
网友评论