lintcode 搜索二维矩阵
Posted 狗剩的美丽家园
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 搜索二维矩阵的主要内容,如果未能解决你的问题,请参考以下文章