编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:
- 每行中的整数从左到右按升序排列。
- 每行的第一个整数大于前一行的最后一个整数。
一开始看了半天不知道啥意思,原来只是单纯的查找目标值是否存在于二维数组中。。。。。。。。。
示例 1:
输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
输出:true
示例 2:
输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13
输出:false
提示:
- m == matrix.length
- n == matrix[i].length
- 1 <= m, n <= 100
- -104 <= matrix[i][j], target <= 104
Code:
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
vector<int>::iterator it;
for(int i=0;i<matrix.size();i++)
{
vector<int>sub=matrix[i];
it=find(sub.begin(),sub.end(),target);
if(it!=sub.end())
return true;
}
return false;
}
};