当前位置: 首页 > news >正文

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;}
}
  • 这个思路真的是太强了,简单还好理解,分享给大家

相关文章:

  • Leetcode刷题记录29——矩阵置零
  • 高维亚空间超频物质变压缩技术 第27次CCF-CSP计算机软件能力认证
  • 力扣:24两两交换链表的节点
  • 融智学16字方针无歧义表述并构建人机协同的非零和博弈模型
  • SVM实战:从理论到鸢尾花数据集的分类可视化
  • Android 端如何监控 ANR、Crash、OOM 等严重问题
  • 基于SpringBoot+Vue实现的电影推荐平台功能三
  • Oracle OCP认证考试考点详解083系列04
  • ip和域名
  • hadoop存储数据文件原理
  • 大数据Spark(五十八):Spark Pi介绍
  • 49-dify案例分享-私有化 MCP 广场搭建与网页小游戏智能体工作流实战
  • 【Bootstrap V4系列】学习入门教程之 组件-徽章(Badge)和面包屑导航(Breadcrumb)
  • C++ 开发指针问题:E0158 表达式必须为左值或函数指示符
  • 【React】Hooks useReducer 详解,让状态管理更可预测、更高效
  • ActiveMQ 集群搭建与高可用方案设计(一)
  • Hal库下备份寄存器
  • Spring Boot的GraalVM支持:构建低资源消耗微服务
  • 高中数学联赛模拟试题精选学数学系列第5套几何题
  • 深度学习核心架构:探明四种基础神经网络
  • 陈雯出任外交部离退休干部局局长,此前为外交部办公厅副主任
  • 41年轮回,从洛杉矶奔向洛杉矶,李宁故地重游再出发
  • 上海市政府党组会议传达学习习近平总书记重要讲话精神,部署抓好学习贯彻落实
  • 一季度全国30强城市出炉:谁能更进一步?谁掉队了?
  • 中年人多活动有助预防阿尔茨海默病
  • 媒体评特朗普对进口电影征100%关税:让好莱坞时代加速谢幕