解题报告 - 搜索二维矩阵
解题报告 - 搜索二维矩阵
LeetCode 搜索二维矩阵
@TOC
题目描述
编写一个高效的算法来判断
m x n
矩阵中,是否存在一个目标值。该矩阵具有如下特性:
每行中的整数从左到右按升序排列。
每行的第一个整数大于前一行的最后一个整数。
示例:

1输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3 输出:true
提示:
1m == matrix.length
2n == matrix[i].length
31 <= m, n <= 100
4-104 <= matrix[i][j], target <= 104
一、解题关键词
1二维矩阵
2有序
二、解题报告
1.思路分析
每行有顺序,每列有顺序
二分 left right mid ,需要找到是否为边界
因为数据行 列 都有序 ,先找列 再找行数据
不能从中间找(二维数组,信息过多),要从下往上 或者从上往下找行数据
确定行数据之后,以此为起点 找列数据
2.时间复杂度
3.代码示例
1class Solution {
2 //有顺序 二分
3 public boolean searchMatrix(int[][] matrix, int target) {
4 int rowLen = matrix.length - 1, colLen = 0;
5 while (rowLen >= 0 && colLen < matrix[0].length) {
6 int num = matrix[rowLen][colLen];
7 if (num == target) {
8 return true;
9 } else if (num > target){
10 rowLen --;
11 }else{
12 colLen ++;
13 }
14 }
15 return false;
16 }
17}
4.知识点
1