题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解:
class
Solution
{
public
:
bool
Find(
int
target,
vector<vector<
int
>
> array) {
//2017-6-6-周二
//矩阵
//行,列
//从右上角开始遍历。需要循环。
//若大于值则行--
//若小于值则列++
//有点不规范,未考虑边界
bool
res=
false
;
//如何判断vector二维数组为空
int
m=array.size();
int
n=array[
0
].size();
//vector向量部分不清清楚。
//
while(m<(array.size()-1)&&n>=0)
for
(
int
i=
0
,j=n-
1
;i<m&&j>=
0
;)
{
if
(array[i][j]==target)
{
res=
true
;
break
;
}
else
if
(array[i][j]<target)
i=i+
1
;
else
j=j-
1
;
}
return
res;
}
};