2025年- H61-Lc169--74.搜索二維矩陣(二分查找)--Java版

1.題目描述

在這里插入圖片描述
在這里插入圖片描述

2.思路

方法一:
定義其實坐標,右上角的元素(0,n-1)。進入while循環(注意邊界條件,行數小于m,列數要>=0)從右上角開始開始向左遍歷(比當前元素target小的元素),向下遍歷(比當前元素target大的元素),如果while循環結束都沒找到,返回false。
方法二:二分查找
若將矩陣每一行拼接在上一行的末尾,則會得到一個升序數組,我們可以在該數組上二分找到目標元素。可以二分升序數組的下標,將其映射到原矩陣的行和列上。
row = mid / 列數,表示這是第幾行;
col = mid % 列數,表示這是該行中的第幾個元素。

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

3.代碼實現

方法一:

class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m = matrix.length;int n = matrix[0].length;int row = 0;int col = n - 1; // 從右上角開始while (row < m && col >= 0) {if (matrix[row][col] == target) {return true;} else if (matrix[row][col] > target) {col--; // 往左走} else {row++; // 往下走}}return false;}
}

方法二:

public class H74 {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-left)/2;//防止整數溢出//將二維矩陣映射成一維數組//當前mid索引對應在矩陣的位置:當前元素的行數=mid/列數. // 將一維下標映射回二維坐標int row=mid/n;//當前元素的列數=mid/列數int col=mid%n;if(matrix[row][col]==target){return true;}else if(target>matrix[row][col]){left=mid+1;}else {right=mid-1;}}return false;}public static void main(String[] args){H74 ms=new H74();int[][] matrix={{1,3,5,7},{10,11,16,20},{23,30,34,60}};int target=11;Boolean res=ms.searchMatrix(matrix,target);System.out.print(res);}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/82431.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/82431.shtml
英文地址,請注明出處:http://en.pswp.cn/web/82431.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Jupyter MCP服務器部署實戰:AI模型與Python環境無縫集成教程

Jupyter MCP 服務器是基于模型上下文協議&#xff08;Model Context Protocol, MCP&#xff09;的 Jupyter 環境擴展組件&#xff0c;它能夠實現大型語言模型與實時編碼會話的無縫集成。該服務器通過標準化的協議接口&#xff0c;使 AI 模型能夠安全地訪問和操作 Jupyter 的核心…

MySQL下載安裝配置環境變量

MySQL下載安裝配置環境變量 文章目錄 MySQL下載安裝配置環境變量一、安裝MySQL1.1 下載1.2 安裝 二、查看MySQL服務是否啟動三、配置環境變量四、驗證 一、安裝MySQL 1.1 下載 官網社區版&#xff08;免費版&#xff09;&#xff1a;https://dev.mysql.com/downloads/mysql/ …

WSL 安裝 Debian 12 后,Linux 如何安裝 curl , quickjs ?

在 WSL 的 Debian 12 系統中安裝 curl 非常簡單&#xff0c;你可以直接使用 APT 包管理器從官方倉庫安裝。以下是詳細步驟&#xff1a; 1. 更新軟件包索引 首先確保系統的包索引是最新的&#xff1a; sudo apt update2. 安裝 curl 執行以下命令安裝 curl&#xff1a; sudo…

Linux入門(十四)rpmyum

RPM 是RedHat PackManager的縮寫 rpm是用于互聯網下載包的打包及安裝工具 rpm查詢 查詢已安裝的rpm列表 rpm -qa查看系統是否安裝了psmisc rpm -qa | grep psmisc rpm -q psmisc查詢軟件包信息 rpm -qi psmisc查詢軟件包中的文件 rpm -ql psmisc根據文件全路徑 查詢文件所…

[git]忽略.gitignore文件

git rm --cached .gitignore 是一個 Git 命令,主要用于 從版本控制中移除已追蹤的 .gitignore 文件,但保留該文件在本地工作目錄中。以下是詳細解析: 一、命令拆解與核心作用 語法解析 git rm:Git 的刪除命令,用于從版本庫(Repository)中移除文件。--cached:關鍵參數…

Hive SQL 中 BY 系列關鍵字全解析:從排序、分發到分組的核心用法

一、排序與分發相關 BY 關鍵字 1. ORDER BY&#xff1a;全局統一排序 作用&#xff1a;對查詢結果進行全局排序&#xff0c;確保最終結果集完全有序&#xff08;僅允許單個 Reducer 處理數據&#xff09;。 語法&#xff1a; SELECT * FROM table_name ORDER BY column1 [A…

網絡爬蟲 - App爬蟲及代理的使用(十一)

App爬蟲及代理的使用 一、App抓包1. App爬蟲原理2. reqable的安裝與配置1. reqable安裝教程2. reqable的配置3. 模擬器的安裝與配置1. 夜神模擬器的安裝2. 夜神模擬器的配置4. 內聯調試及注意事項1. 軟件啟動順序2. 開啟抓包功能3. reqable面板功能4. 夜神模擬器設置項5. 注意事…

【25.06】FISCOBCOS使用caliper自定義測試 通過webase 單機四節點 helloworld等進行測試

前置條件 安裝一個Ubuntu20+的鏡像 基礎環境安裝 Git cURL vim jq sudo apt install -y git curl vim jq Docker和Docker-compose 這個命令會自動安裝docker sudo apt install docker-compose sudo chmod +x /usr/bin/docker-compose docker versiondocker-compose vers…

【基礎】Unity中Camera組件知識點

一、投影模式 (Projection) 1. 透視模式 (Perspective) 原理&#xff1a;模擬人眼&#xff0c;近大遠小&#xff08;錐形體視錐&#xff09; 核心參數&#xff1a; Field of View (FOV)&#xff1a;垂直視場角 典型值&#xff1a;第一人稱 60-90&#xff0c;駕駛艙 30-45 特…

PCA(K-L變換)人臉識別(python實現)

數據集分析 ORL數據集&#xff0c; 總共40個人&#xff0c;每個人拍攝10張人臉照片 照片格式為灰度圖像&#xff0c;尺寸112 * 92 特點&#xff1a; 圖像質量高&#xff0c;無需灰度運算、去噪等預處理 人臉已經位于圖像正中央&#xff0c;但部分圖像角度傾斜&#xff08;可…

【Git】View Submitted Updates——diff、show、log

在 Git 中查看更新的內容&#xff08;即工作區、暫存區或提交之間的差異&#xff09;是日常開發中的常見操作。以下是常用的命令和場景說明&#xff1a; 文章目錄 1、查看工作區與暫存區的差異2、查看提交歷史中的差異3、查看工作區與最新提交的差異4、查看兩個提交之間的差異5…

deepseek原理和項目實戰筆記2 -- deepseek核心架構

混合專家&#xff08;MoE&#xff09; ??混合專家&#xff08;Mixture of Experts, MoE&#xff09;?? 是一種機器學習模型架構&#xff0c;其核心思想是通過組合多個“專家”子模型&#xff08;通常為小型神經網絡&#xff09;來處理不同輸入&#xff0c;從而提高模型的容…

GPU層次結構(Nvidia和Apple M芯片,從硬件到pytorch)

這里寫目錄標題 0、驅動pytorch環境安裝驗證1.window環境2.Mac Apple M芯片環境 1、Nvidia顯卡驅動、CUDA、cuDNN關系匯總1**1. Nvidia顯卡驅動&#xff08;Graphics Driver&#xff09;****2. CUDA&#xff08;Compute Unified Device Architecture&#xff09;****3. cuDNN&a…

OpenWrt 搭建 samba 服務器的方法并解決 Windows 不允許訪問匿名服務器(0x80004005的錯誤)的方法

文章目錄 一、安裝所需要的軟件二、配置自動掛載三、配置 Samba 服務器四、配置 Samba 訪問用戶和密碼&#xff08;可選&#xff09;新建 Samba 專門的用戶添加無密碼的 Samba 賬戶使用root賬戶 五、解決 Windows 無法匿名訪問Samba方案一 配置無密碼的Samba賬戶并啟用匿名訪問…

CentOS 7鏡像源替換

更換為阿里云鏡像源&#xff08;適用于 CentOS 7&#xff09; 1、備份原來的 repo 文件&#xff1a; mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2、下載阿里云的 CentOS 7 repo 文件&#xff1a; curl -o /etc/yum.repos.d/CentOS-Base…

功能結構整理

C# Sxer Sxer.Base&#xff1a;基礎子功能 Sxer.Base.Debug&#xff1a;打印 Sxer.Utility&#xff1a;工具類 Sxer.CustomFunction&#xff1a;獨立功能點開發 Unity

云計算Linux Rocky day02(安裝Linux系統、設備表示方式、Linux基本操作)

云計算Linux Rocky day02&#xff08;安裝Linux系統、設備表示方式、Linux基本操作&#xff09; 目錄 云計算Linux Rocky day02&#xff08;安裝Linux系統、設備表示方式、Linux基本操作&#xff09;1、虛擬機VMware安裝Rocky2、Linux命令行3、Linux Rocky修改字體大小和背景顏…

【論文閱讀】《PEACE: Empowering Geologic Map Holistic Understanding with MLLMs》

目錄 前言一、研究背景與問題1-1、地質圖的重要性1-2、現有MLLMs的不足 二、 主要貢獻2-1、GeoMap-Bench&#xff1a;首個地質圖理解評估基準2-2、GeoMap-Agent&#xff1a;首個地質圖專用AI代理2-3、實驗驗證與性能優勢 三、關鍵技術3-1、 數據構建與預處理3-2、分層信息提取&…

計算機網絡通信技術與協議(八)----關于IS-IS的基礎概念

關于IS&#xff0d;IS最早是ISO為CLNP&#xff08;Connectionless Network Protocol&#xff0c;無連接網絡協議&#xff09;而設計的一種動態路由協議。 目錄 這里提到了CLNP這個概念&#xff0c;在這里解釋一下&#xff1a; CLNS由以下三個協議構成&#xff1a; 那么為什…

網絡原理1

協議 在網絡通信中&#xff0c;協議是非常重要的概念。協議是在網絡通信過程中的約定。發送方和接收方需要提前商量好數據的格式&#xff0c;才能確保正確進行溝通。 應用層協議 應用層&#xff0c;對應著應用程序&#xff0c;是跟我們程序員打交道最多的一層。調用操作系統…