Search a 2D Matrix
来源:互联网 发布:jsp调用java方法 编辑:程序博客网 时间:2024/06/13 16:39
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:
- Integers in each row are sorted from left to right.
- The first integer of each row is greater than the last integer of the previous row.
For example,
Consider the following matrix:
[ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]
Given target = 3
, return true
.
写一个高效算法搜索m*n矩阵。矩阵有一下特点:
整数从左到右不断增大,每一行的第一个整数大于前一行的最后一个整数。
这道题可以用二分法,时间复杂度为O(logm+logn);也可以直接用矩阵特点搜索,时间复杂度为O(m+n),代码如下:
class Solution {public: bool searchMatrix(vector<vector<int> > &matrix, int target) { int m=matrix.size(); int n=matrix[0].size(); int r=0,c=n-1; while(r<m && c>=0) { if(matrix[r][c]==target) return true; else if(matrix[r][c]>target) c--; else r++; } return false; }};
0 0
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D Matrix
- Search a 2D matrix
- Search a 2D matrix
- res与res-auto的差别
- J2EE的十三种技术——JDBC
- 三大JavaScript框架对比——AngularJS、BackboneJS和EmberJS
- Java New IO(NIO)详解
- C++中的内存区域
- Search a 2D Matrix
- 【学习ios之路:UI系列】(UISearchBar,UISearchDisplayController) 和UISearchController(iOS8新特性)
- Android webview使用详解
- [codevs 1917] 深海机器人问题
- Android Studio 1.1 Beta2 发布
- oracle 创建表、修改表、添加约束
- jvm如何判断对象已死?
- rman 归档日志 crosscheck
- Java中的main()方法详解