Leetcode题集——search-a-2d-matrix
来源:互联网 发布:淘宝直播间打字在哪 编辑:程序博客网 时间:2024/05/22 12:42
题目描述
Write an efficient algorithm that searches for a value in an m x nmatrix. 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, returntrue.
解析:该数组的特点就是:行和列都是递增的,且上一行肯定小于下一行。所以,可以对行和列分别用二分查找法。先对行首元素进行二分查找,判断条件为:小于当前行首元素,且大于下行首元素,或者最后一行,确定所在行。再在本行使用二分查找法,确定是否存在目标值。
bool searchMatrix(vector<vector<int> > &matrix, int target) { int low=0,high=matrix.size(); int mid; //对行首元素进行二分查找 while(low<=high) { mid=(low+high)/2; if(matrix[mid][0]==target) return true; if(matrix[mid][0]>target) high=mid-1; if(matrix[mid][0]<target) { if(mid==matrix.size()-1||matrix[mid+1][0]>target) break;//当检索到最后一行或者目标值小于本行,大于下一行 else low=mid+1; } } //确定行之后,对该行进行二分查找 low=1;high=matrix[0].size()-1; int m; while(low<=high) { m=(low+high)/2; if(matrix[mid][m]==target) return true; if(matrix[mid][m]>target) high=m-1; if(matrix[mid][m]<target) low=m+1; } return false; }
0 0
- Leetcode题集——search-a-2d-matrix
- LeetCode——Search a 2D Matrix
- LeetCode——Search a 2D Matrix
- leetcode 074 —— Search a 2D Matrix
- LeetCode——Search a 2D Matrix II
- Leetcode——240. Search a 2D Matrix II
- LeetCode 之 Search a 2D Matrix — C 实现
- [leetcode][Search] Search a 2D Matrix
- LeetCode: Search a 2D Matrix
- LeetCode Search a 2D Matrix
- [Leetcode] Search a 2D Matrix
- LeetCode : Search a 2D Matrix
- [LeetCode] Search a 2D Matrix
- Leetcode 74 Search a 2D Matrix
- leetcode 90: Search a 2D Matrix
- [LeetCode]Search a 2D Matrix
- [Leetcode] Search a 2-D matrix
- [Leetcode]Search a 2D Matrix
- 管理员提权之上(二)
- 注解实现1对1
- Symfony之components--第二章--第二讲:BrowserKit组件的使用
- like语句
- Android自学笔记(四)Activity之间传递数据
- Leetcode题集——search-a-2d-matrix
- nodejs中npm常用命令
- android EditText 不自动弹出键盘的方法
- Android studio中“import org.apache.http.Header; 不可用
- 设计模式总结之Abstruct Factory Pattern(抽象工厂模式)
- 【CF 149D】Coloring Brackets(dp)
- 企业项目介绍
- Android事件分发机制与滑动冲突
- 注解实现增删改查