首页 > 代码库 > lintcode 搜索二维矩阵
lintcode 搜索二维矩阵
题目:搜索二维矩阵
描述:
写出一个高效的算法来搜索 m × n矩阵中的值。
这个矩阵具有以下特性:
- 每行中的整数从左到右是排序的。
- 每行的第一个数大于上一行的最后一个整数。
样例
考虑下列矩阵:
[
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
给出 target = 3
,返回 true
-------------------------------------------
开始用两个二分搜索,先找列,再找行。运行后提示超时。。。
1 class Solution { 2 public: 3 /** 4 * @param matrix, a list of lists of integers 5 * @param target, an integer 6 * @return a boolean, indicate whether matrix contains target 7 */ 8 bool searchMatrix(vector<vector<int> > &matrix, int target) { 9 // write your code here 10 if (matrix.empty()) { 11 return 0; 12 } 13 int i = 0; 14 int j = matrix[0].size() - 1; 15 while (i < matrix.size() && j >= 0) { 16 int curr = matrix[i][j]; 17 if (target == curr) { 18 return 1; 19 } else if (curr < target) { 20 i++; 21 } else { 22 j--; 23 } 24 } 25 return 0; 26 } 27 };
lintcode 搜索二维矩阵
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。