28. 搜索二维矩阵- LintCode
2018-01-25 22:35
393 查看
22.平面列表
题目
原题网址:http://www.lintcode.com/zh-cn/problem/search-a-2d-matrix/
写出一个高效的算法来搜索 m × n矩阵中的值。
这个矩阵具有以下特性:
每行中的整数从左到右是排序的。
每行的第一个数大于上一行的最后一个整数。
样例
考虑下列矩阵:
给出
解题思路
在矩阵里的元素是升序排列的给定情况下, 假如一个列的末尾元素小于目标值, 那么这个目标值一定不在这一行,
遍历到最后一个元素的值小于目标值, 那么目标值肯定就在此行. 随后进入此行进行搜索.
参考代码
题目
原题网址: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; } };
相关文章推荐
- [LintCode]28.搜索二维矩阵
- lintcode. 28 搜索二维矩阵
- LintCode【简单】28. 搜索二维矩阵 。代码及思路
- LintCode之28 搜索二维矩阵
- LintCode:搜索二维矩阵 II
- LintCode 28. 搜索二维矩阵
- LintCode: 28. 搜索二维矩阵 Java
- LintCode 38 搜索二维矩阵 II
- [Lintcode] Search a 2D Matrix II搜索二维矩阵 II
- 搜索二维矩阵——LintCode
- 28 - 搜索二维矩阵
- LintCode-38.搜索二维矩阵 II
- lintcode,搜索二维矩阵 II
- 【LintCode】搜索二维矩阵 II
- lintcode ---- 搜索二维矩阵
- (lintcode)第28题 搜索二维矩阵
- [LintCode]38.搜索二维矩阵 II
- LintCode-28. 搜索二维矩阵
- 搜索二维矩阵
- 搜索二维矩阵 II