题目描述
解题思路
(1)我自己的思路是:
- 首先确定 target 可能存在的第一行 i
- 对第 i 行的元素进行二分,若存在,则返回true;若不存在,则继续
- 对第 i 行最后锁定的元素所在列,继续向下遍历,若存在则返回true,否则对于第一个大于target的值,则在该行向左移动,寻找该值是否存在,重复上述过程。若存在返回true,不存在返回false
过程中要注意的问题有:
- 数组是否为空
class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target)
{
if(matrix.size()==0||matrix[0].size()==0) return false;
int size=matrix[0].size();
int start,i, first=0;
for(int j=0;j