[LeetCode]74. 搜索二维矩阵(java实现)二分
1. 题目
2. 读题(需要重点注意的东西)
思路(二分):
先二分出最大的行首元素小于等于target的行;
再在这行中二分出最大的小于等target的数即可。
3. 解法
---------------------------------------------------解法---------------------------------------------------:
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int l = 0, r = matrix.length - 1;
while(l < r){
int mid = l + r + 1 >> 1;
if(matrix[mid][0] <= target) l = mid;
else r = mid - 1;
}
int k = l;
l = 0;
r = matrix[0].length - 1;
while(l < r){
int mid = l + r + 1>> 1;
if(matrix[k][mid] <= target) l = mid;
else r = mid - 1;
}
return matrix[k][l] == target;
}
}
可能存在的问题:
4. 可能有帮助的前置习题
5. 所用到的数据结构与算法思想
- 二分
6. 总结
二分模板题,掌握二分的两个模板