二分查找-搜索二维矩阵

ops/2025/3/18 15:45:26/

74.搜索二维矩阵

java">给你一个满足下述两条属性的 m x n 整数矩阵:每行中的整数从左到右按非严格递增顺序排列。
每行的第一个整数大于前一行的最后一个整数。
给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false

输入:二维数组,目标值
输出:布尔
思路:一次二分查找,将二维数组看成是一个一维数组,然后进行二分查找
细节实现:
二分查找的头为0,尾为数组的元素个数,中间值使用matrix[mid/n][mid%n]

java">class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m = matrix.length;int n = matrix[0].length;int left = 0;int right = m * n - 1;while(left <= right){int mid = (left + right) / 2;int x = matrix[mid / n][mid % n];if(x < target){left = mid + 1;}else if(x > target){right = mid - 1;}else{return true;}}return false;}
}

注意在while循环中left <= right


http://www.ppmy.cn/ops/166802.html

相关文章

数智读书笔记系列018 《多模态大模型:技术原理与实战》解锁多模态从原理到实战的深度探索

书籍初印象&#xff1a;开启多模态大模型之旅 在人工智能飞速发展的今天&#xff0c;多模态大模型已成为推动行业进步的关键力量。《多模态大模型&#xff1a;技术原理与实战》这本书&#xff0c;犹如一把钥匙&#xff0c;为我们打开了深入了解多模态大模型的大门。 它由彭勇…

debian12运行sql server2022(docker)

内容根据微软官方文档&#xff0c;经过测验&#xff0c;顺序执行即可使用docker运行sql server2022 需要正确配置docker&#xff0c;如果没有配置看我先前的文章 因为只有ubuntu18.04才可以直接在系统中下载sql server&#xff0c;所以想要在系统中使用sql server需要使用docke…

Vue 生命周期详解:从创建到销毁的全过程

Vue.js 是一个流行的前端框架&#xff0c;它通过组件化的方式帮助开发者构建用户界面。在 Vue 中&#xff0c;每个组件实例都有其生命周期&#xff0c;从创建、挂载、更新到销毁&#xff0c;Vue 提供了一系列的生命周期钩子函数&#xff0c;允许我们在组件的不同阶段执行自定义…

K8S快速部署

前置虚拟机环境正式部署BUG解决 前置虚拟机环境 每个虚拟机配置一次就好 #关闭防火墙 systemctl stop firewalld systemctl disable firewalld #关闭 selinux sed -i s/enforcing/disabled/ /etc/selinux/config # 永久 setenforce 0 # 临时 #关闭 swap swapoff -a # 临时 vi…

@RequestBody注解解释

ResponseBody是Spring框架中的一个注解&#xff0c;主要用于将方法的返回值直接写入HTTP响应体中&#xff0c;而不是解析为视图进行跳转 。以下是详细介绍&#xff1a; 作用机制&#xff1a;当一个方法被ResponseBody注解标记后&#xff0c;Spring会根据请求头中的Accept字段&…

【从零开始学习计算机科学】数据库系统(八)数据库的备份和恢复

【从零开始学习计算机科学】数据库系统(八)数据库的备份和恢复 备份和恢复事务故障系统故障磁盘故障其他故障故障的恢复日志日志缓冲区事务故障的恢复系统故障的恢复系统故障的恢复步骤检查点检查点的执行过程备份日志文件备份远程备份恢复策略事务故障恢复策略系统崩溃恢复策…

【春招笔试】2025.03.13-蚂蚁春招笔试题

题目总结 题目一:区间未出现的最小值之和 1️⃣:统计全为1的子数组数量和全为0的子数组数量,利用公式计算 2️⃣:利用数学公式 n(n+1) - 2N0 - N1 计算最终答案 难度:中等 这道题目的关键在于理解 mex 的概念,并发现对于只含 0 和 1 的数组,mex 值只可能是 0、1 或 2。…

前端npm包- CropperJS

文章目录 一、CropperJS**核心特性****官网与文档****安装与使用**1. **通过 npm/yarn/pnpm 安装**2. **HTML 结构**3. **引入 CSS 和 JS**4. **初始化裁剪器** **相关插件/替代方案****适用场景****注意事项** 总结 一、CropperJS cropperjs 是一个轻量级、功能强大的 图片裁…