欢迎光临散文网 会员登陆 & 注册

解题报告 - 搜索二维矩阵

2022-10-07 21:02 作者:大涛先生_  | 我要投稿

解题报告    - 搜索二维矩阵

LeetCode 搜索二维矩阵

@TOC

题目描述

 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:

  • 每行中的整数从左到右按升序排列。

  • 每行的第一个整数大于前一行的最后一个整数。

示例:

image-20221007165526419

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.思路分析

  1. 每行有顺序,每列有顺序

  2. 二分 left right mid ,需要找到是否为边界

  3. 因为数据行 列 都有序 ,先找列 再找行数据

  4. 不能从中间找(二维数组,信息过多),要从下往上 或者从上往下找行数据

  5. 确定行数据之后,以此为起点 找列数据

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


解题报告 - 搜索二维矩阵的评论 (共 条)

分享到微博请遵守国家法律