欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > LeetCode240. 搜索二维矩阵 II(巧妙转换)

LeetCode240. 搜索二维矩阵 II(巧妙转换)

2025/5/5 22:57:37 来源:https://blog.csdn.net/nuc_ghp/article/details/147673857  浏览:    关键词:LeetCode240. 搜索二维矩阵 II(巧妙转换)

编写一个高效的算法来搜索m x n矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

每行的元素从左到右升序排列。
每列的元素从上到下升序排列。
在这里插入图片描述
在这里插入图片描述

  • 题目中最关键的信息就是每行从左到右升序,每列从左到右升序,如果暴力的话就用不到这两个条件,肯定是不行的,我先开始看见这两个条件是想通过二分来解决,但每行都进行二分的话比较浪费时间,就限定了一个小一点的范围,然后将这个范围中的数添加到一个数组中,然后排序在进行二分,这个思路也是比较麻烦的,在看完路飞大佬的题解后豁然开朗。
  • 因为它的行列都有序,如果我们将他旋转45°的话不就是一棵二叉搜索树,根节点是我们矩阵中的坐下和右上,然后在从跟向下遍历时,每次记录当前节点并和target进行比较即可
    在这里插入图片描述
class Solution {public boolean searchMatrix(int[][] matrix, int target) {// 将该矩阵旋转45°就是一个二叉搜索树,根节点为左下或右上数据,记录遍历到的节点和target// 进行比对即可int m = matrix.length, n = matrix[0].length;int i = m - 1, j = 0;int flag = matrix[i][j];while(i >= 0 && i < m && j >= 0 && j < n){flag = matrix[i][j];if(flag == target) return true;if(target > flag) j ++;else i --;}return false;}
}
  • 这个思路真的是太强了,简单还好理解,分享给大家

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词