您的位置:首页 > 其它

28. 搜索二维矩阵- LintCode

2018-01-25 22:35 393 查看
22.平面列表

题目
原题网址:http://www.lintcode.com/zh-cn/problem/search-a-2d-matrix/

写出一个高效的算法来搜索 m × n矩阵中的值。
这个矩阵具有以下特性:
每行中的整数从左到右是排序的。
每行的第一个数大于上一行的最后一个整数。

样例

考虑下列矩阵:
[
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]

给出 
target = 3
,返回 
true


解题思路
   在矩阵里的元素是升序排列的给定情况下, 假如一个列的末尾元素小于目标值, 那么这个目标值一定不在这一行, 
遍历到最后一个元素的值小于目标值, 那么目标值肯定就在此行. 随后进入此行进行搜索.

参考代码

class Solution {
public:
/*
* @param matrix: matrix, a list of lists of integers
* @param target: An integer
* @return: a boolean, indicate whether matrix contains target
*/
vector<int> vec;
bool searchMatrix(vector<vector<int>> &matrix, int target) {
int len = matrix.size();
for (int i = 0; i < len; i++)
{
int len2 = matrix[i].size();
if (matrix[i][len2-1] < target)
{
continue;
}
for (int j = 0; j < len2; j++)
{
if (matrix[i][j] == target)
{
return true;
}
}
}
return false;
}
};


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: