15. 二维数组中的查找
题目来源 https://www.acwing.com/problem/content/16/
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
样例
输入数组:
[
[1,2,8,9],
[2,4,9,12],
[4,7,10,13],
[6,8,11,15]
]
如果输入查找数值为7,则返回true,
如果输入查找数值为5,则返回false。
class Solution {
public:
bool searchArray(vector<vector<int>> array, int target) {
if (array.empty() ||array[0].size() ==0){//在这里我们首先判断一下边界条件
return false;
} // 这道题的解决方案是 我们首先从矩阵的右上角开始判断
int i =0;
int j = array[0].size() -1; //在这里定义两个指针
while (i<array.size() && j>=0){
if (array[i][j] ==target){ // 如果找到了元素,那么我们返回出来 TRUE;
return true;
}else if (array[i][j] > target){
j--; //
}
else {
i++;
}
}
return false;
}
};
// 加油加油, Try to make yourself more excellent...