面試150 搜索二維矩陣

在這里插入圖片描述

思路1

直接遍歷搜尋,逐個判斷即可

class Solution:def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:m=len(matrix)n=len(matrix[0])for i in range(m):for j in range(n):if matrix[i][j]==target:return Truereturn False

思路2

Z字形搜索從矩陣的右上角(第一行最后一列)開始。若當前元素等于 target,則返回 True。如果當前元素小于 target,說明目標可能在更大的元素中,將行索引加一(向下移動);反之,若當前元素大于 target,則列索引減一(向左移動)。重復上述過程,直到找到目標或越界結束搜索。

class Solution:def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:m, n = len(matrix), len(matrix[0])# 從右上角開始搜索i, j = 0, n - 1while i < m and j >= 0:if matrix[i][j] == target:return Trueelif matrix[i][j] > target:j -= 1  # 向左移動else:i += 1  # 向下移動return False

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

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

相關文章

npm init vite-app runoob-vue3-test2 ,npm init vue@latest,指令區別

這兩個命令都是用于創建 Vue.js 項目的腳手架命令&#xff0c;但它們在技術棧、配置方式和項目結構上有顯著區別&#xff1a;1. npm init vite-app runoob-vue3-test2技術棧&#xff1a;基于 Vite 構建工具使用 Vue 3 作為默認框架由 Vite 團隊維護特點&#xff1a;bash復制代碼…

WPF MVVM進階系列教程(二、數據驗證)

五一出去浪吹風著涼了&#xff0c;今天有點發燒&#x1f637; 手頭的工作放一放&#xff0c;更新一下博客吧。 什么是數據驗證(Validation) 數據驗證是指用于捕獲非法數值并拒絕這些非法數值的邏輯。 大多數采用用戶輸入的應用都需要有驗證邏輯&#xff0c;以確保用戶已輸入…

AI 音頻產品開發模板及流程(二)

AI 音頻產品開發模板及流程&#xff08;一&#xff09; 6. 同聲傳譯 實時翻譯&#xff0c;發言與翻譯幾乎同步&#xff0c;極大提升溝通效率。支持多語言互譯&#xff0c;適用于國際會議、商務洽談等多場景。自動斷句、轉寫和翻譯&#xff0c;減少人工干預&#xff0c;提升準…

kafka4.0集群部署

kafka4.0是最新版kafka&#xff0c;可在kafka官網下載&#xff0c;依賴的jdk版本要求在jdk17及jdk17以上tar -xzf kafka_2.13-4.0.0.tgzmv kafka_2.13-4.0.0 kafkacd kafka# 隨便一臺節點運行生成隨機uuid&#xff0c;后面每臺節點都要使用此uuidbin/kafka-storage.sh random-u…

【News】同為科技亮相首屆氣象經濟博覽會

7月18日&#xff0c;由中國氣象服務協會主辦的國內首個以“氣象經濟”為核心的國家級博覽會——首屆氣象經濟博覽會&#xff08;以下簡稱“博覽會”&#xff09;在合肥濱湖國際會展中心開幕。北京同為科技有限公司&#xff08;TOWE&#xff09;作為雷電防護領域的技術領導企業&…

數據結構 堆(2)---堆的實現

上篇文章我們詳細介紹了堆和樹的基本概念以及它們之間的關系&#xff0c;還要知道一般實現堆的方式是使用順序結構的數組進行存儲數據及實現。下來我們看看利用順序結構的數組如何實現對的內容:1.堆的實現關于堆的實現&#xff0c;也是三個文件&#xff0c;頭文件&#xff0c;實…

Arraylist與LinkedList區別

&#x1f4da; 歡迎來到我的Java八股文專欄&#xff01; &#x1f389;各位程序員小伙伴們好呀~ &#x1f44b; 我是雪碧聊技術&#xff0c;很高興能在CSDN與大家相遇&#xff01;?&#x1f680; 專欄介紹這個專欄將專注于分享Java面試中的經典"八股文"知識點 &…

Java實戰:基于Spring Cloud的電商微服務架構設計——從拆分到高可用的全流程解析

引言 2023年雙十一大促期間,某傳統電商平臺的單體應用再次“爆雷”:凌晨1點訂單量突破50萬單/分鐘時,用戶服務因數據庫連接池被訂單模塊占滿,導致登錄接口響應時間從200ms飆升至5秒,大量用戶流失。技術團隊緊急回滾后發現:這個運行了7年的單體應用,早已變成“代碼泥潭”…

STL學習(二、vector容器)

1.vector構造函數函數原型vector<int> v // 默認構造&#xff0c;size為0vector(const_iterator beg, const_iterator end) // 將v的[begin, end) 元素拷貝過來vector(n, elem) // 構造函數將n個elem拷貝到本身vector(const vector & v) // 拷貝構造2.vect…

深度學習-算子

概念&#xff1a;標識數字圖像中亮度變化明顯的點處理步驟1.濾波處理算子通常被稱為濾波器。2.增強確定各點sobel算子概念&#xff1a;主要用于獲得數字圖像的一階梯度&#xff0c;本質是梯度運算。Scharr算子Scharr算子 是一種用于邊緣檢測的梯度算子&#xff0c;它是Sobel算子…

全國產8通道250M AD FMC子卡

4片8路ADS42LB69標準FMC采集子卡自研成品ADC采集子卡和定制化設計ADC采集子卡&#xff0c;實測采集指標均與手冊標稱值一致。該板卡有全國產化和進口兩個版本&#xff0c;基于FMC標準設計&#xff0c;實現8路16bit/250MSPS ADC采集功能&#xff0c;遵循 VITA 57 標準&#xff0…

【牛客網C語言刷題合集】(三)

&#x1f31f;菜鳥主頁&#xff1a;晨非辰的主頁 &#x1f440;學習專欄&#xff1a;《C語言刷題集》 &#x1f4aa;學習階段&#xff1a;C語言方向初學者 ?名言欣賞&#xff1a;"任何足夠先進的bug都與魔法無異。" 前言&#xff1a;刷題博客主要記錄在學習編程語言…

Python之--字典

定義字典&#xff08;dict&#xff09;是一種無序、可變且可哈希的數據結構&#xff0c;字典是根據一個信息來查找另一個信息&#xff0c;它表示索引用的鍵和對應的值構成的成對關系。特點&#xff08;1&#xff09;字典與列表一樣&#xff0c;是Python里面的可變數據類型。&am…

【ARM】ARM微架構

1、 文檔目標對 ARM 微架構的概念有初步的了解。2、 問題場景在和客戶溝通和新同事交流時對于 ARM 架構和微架構二者有什么區別和聯系&#xff0c;做一個簡單的介紹。3、軟硬件環境1、軟件版本&#xff1a;不涉及2 、電腦環境&#xff1a;不涉及4、關于 ARM 架構和微架構架構不…

c++注意點(11)----設計模式(工廠方法)

創建型模式工廠方法模式是一種創建型設計模式&#xff0c; 其在父類中提供一個創建對象的方法&#xff0c; 允許子類決定實例化對象的類型。為什么需要工廠方法模式&#xff1f;看一個 “沒有工廠模式” 的痛點場景&#xff1a;假設你在開發一個游戲&#xff0c;最初只有 “戰士…

基于Kubernetes的微服務CI/CD:Jenkins Pipeline全流程實踐

一、部署gitlab GitLab 是一個集代碼托管、CI/CD、項目管理、安全掃描于一體的 DevOps 平臺&#xff0c;提供從代碼編寫到部署的全生命周期管理。它支持 Git 版本控制&#xff0c;內置自動化流水線&#xff0c;可與 Kubernetes 集成&#xff0c;實現云原生應用的持續交付。同時…

Spring Bean初始化及@PostConstruc執行順序

目錄 1. Bean初始化執行順序 2. 成員變量初始化順序 2.1 普通Java類&#xff08;非Spring環境&#xff09; (1) 默認初始化(即初始分配內存) (2) 顯式初始化 (3) 構造器初始化 (4)完整順序 2.2 Spring管理的Bean&#xff08;依賴注入場景&#xff09; (1) 普通成員變量…

webRTC合并本地源碼修改和官方更新

一、總體思路&#xff1a;基于 Git 分支管理改動origin/main 是官方 WebRTC 主干&#xff08;來自 webrtc.googlesource.com&#xff09;。my/webrtc 是你自己開發和修改的分支。每次 Google 更新 WebRTC&#xff0c;你從 origin/main 拉新代碼&#xff0c;再把 my/webrtc 分支…

c++注意點(12)----設計模式(生成器)

創建型模式生成器模式&#xff08;Builder Pattern&#xff09;是一種創建型設計模式&#xff0c;它專注于將復雜對象的構建過程與表示分離&#xff0c;使得同樣的構建過程可以創建不同的表示。就像是做飯&#xff0c;你可以自己慢慢做&#xff0c;各個步驟自己選擇。而使用生成…

[特殊字符] VLA 如何“繞過”手眼標定?—— 當機器人學會了“看一眼就動手”

&#x1f52e; VLA 如何“繞過”手眼標定&#xff1f;—— 當機器人學會了“看一眼就動手” 作者&#xff1a;石去皿 發布時間&#xff1a;2025年7月 在傳統機器人系統中&#xff0c;“手眼標定”是每一個工程師都繞不開的課題。 你必須精確測量相機和機械臂之間的空間變換關系…