Leecode熱題100--二分查找---33:搜索旋轉排序矩陣

題目
整數數組 nums 按升序排列,數組中的值 互不相同 。
給你 旋轉后 的數組 nums 和一個整數 target ,如果 nums 中存在這個目標值 target ,則返回它的下標,否則返回 -1 。

在這里插入圖片描述
思路
此處采用容易理解的兩次二分查找法,確定target位置。
第一次先找到旋轉點用一次二分
第二次確定target在哪個區間之后再二分搜索

class Solution
{
public:int search(vector<int>& nums,int target){int L = 0, R = nums.size() - 1;// [)區間// 最后一個判斷的是最小值,即旋轉點// 第一次二分查找,確定最小值索引while(L < R){int mid = L + (R - L)/2;if (nums[mid] <= nums[R]){R = mid;}else{L = mid + 1;}}// 上述循環結束, R=L 都會指向最小值的索引// 確定target在哪個區間,更新左區間或右區間值int left, right;if(target >= nums[0] && R != 0 && target <= nums[R-1]){left = 0;right = R;}else{left = R;right = nums.size() - 1;}// 第二次二分查找,確定target索引while(left <= right){int mid = left + (right-left)/2;if(nums[mid] == target)  return mid;else if(nums[mid] < target){left = mid + 1;}else{right = mid - 1;}}return -1;}
};

Leecode—153:尋找旋轉矩陣中的最小值
思路同上,取第一次二分查找即可。

class Solution {
public:int findMin(vector<int>& nums) {int L =0, R = nums.size()-1;// [)區間// 最后一個判斷的是最小值,即旋轉點// 一次二分查找,確定最小值索引while(L < R){int mid = L + (R-L)/2;if(nums[mid] <= nums[R]){R = mid;}else{L = mid + 1;}}// 返回值L=R都是最小值索引return nums[L];}
};

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

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

相關文章

端口掃描利器--nmap

目錄 普通掃描 幾種指定目標的方法 TCP/UDP掃描 端口服務掃描 綜合掃描 普通掃描 基于端口連接并響應(真實) ? nmap -sn 網段(0/24)-sn 幾種指定目標的方法 單個IP掃描 IP范圍掃描 掃描文件里的IP 掃描網段,(排除某IP) 掃描網段(排除某清單IP) TCP/UDP掃描 -sS …

linux中邏輯卷管理與擴展

邏輯卷管理與擴展 邏輯卷 作用&#xff1a; 1.整合分散的空間2.空間支持擴大 邏輯卷制作過程&#xff1a;將眾多的物理卷&#xff08;PV&#xff09;組建成卷組&#xff08;VG&#xff09;&#xff0c;再從卷組中劃分出邏輯卷&#xff08;LV&#xff09; 邏輯卷的邏輯思路 …

哪些公司防泄密軟件最受歡迎?2024年防泄密軟件排行榜 |

在數字化時代&#xff0c;數據的安全性和保密性已成為企業運營和發展的關鍵要素。隨著技術的不斷進步&#xff0c;防泄密軟件逐漸成為了企業保護核心數據和知識產權的重要工具。在2024年&#xff0c;市場上涌現出了眾多防泄密軟件&#xff0c;它們各具特色&#xff0c;為企業的…

楊校老師課題之基于Idea的SSM實訓項目案例開發之在線手機商城開發(一)【非常適合初學者】

1.前期配置 2.開發涉及技術棧和工具 2.1 技術棧 后端: SSM前端&#xff1a;Html、CSS、BootStrap(官方定義好的CSS樣式)數據庫: MySQL 2.2 開發環境(工具) 進行本次開發&#xff0c;需要具備如下環境: JDK a. JDK8.0/1.8 b. 注意&#xff1a; 沒有JDK是無法運行IdeaIDEA a. …

靜態住宅(ISP)代理互聯網服務提供商多賬戶使用案例

在本文我探討多賬戶管理的重要性以及使用靜態住宅 &#xff08;ISP&#xff09; 代理的好處。 什么是多個賬戶而為什么在企業上需要有它呢&#xff1f; 多賬戶管理就是指在社交媒體或者電子商務網站等各種在線平臺上創建和使用多個賬戶的做法。這種策略允許個人和企業定制內容…

Django之rest_framework(九)

一、分頁-PageNumberPagination類 REST framework提供了分頁的支持 官網:Pagination - Django REST framework 1.1、全局設置 # settings.py REST_FRAMEWORK = {DEFAULT_PAGINATION_CLASS: rest_framework.pagination.PageNumberPagination,PAGE_SIZE: 100 # 每頁數目 }提示…

ML307R OpenCPU 網絡初始化流程介紹

一、網絡初始化流程 二、函數介紹 三、示例代碼 四、代碼下載地址 一、網絡初始化流程 模組的IMEI/SN獲取接口可在include\cmiot\cm_sys.h中查看,SIM卡IMSI/ICCID獲取接口可以在include\cmiot\cm_sim.h中查看,PDP激活狀態查詢可以在include\cmiot\cm_modem.h中查看 二、函…

對紅黑樹、跳表、B+樹的一些理解

文章目錄 紅黑樹應用場景 跳表使用場景 B樹使用場景 毫無疑問數據結構是復雜的&#xff0c;讓人頭大的&#xff0c;大學時唯一掛科的就是數據結構&#xff0c;上學時不用心&#xff0c;不曉得自己的職業生涯要一直被數據結構支配。 或多或少&#xff0c;面試抱佛腳時&#xff0…

項目日記(1): boost搜索引擎

目錄 1. 項目相關背景 2. 搜索引擎的相關宏原理 3. 搜索引擎的技術棧和項目環境 4. 正排索引, 倒排索引, 搜索引擎具體原理 5. 編寫數據去標簽化和數據清洗的模塊parser(解析器). 1.項目相關背景 百度, 搜狗, 360等都有搜索引擎, 但是都是全網的搜索; boost是進行站內搜索…

【Java SE】 String、StringBuff和StringBuilder

&#x1f970;&#x1f970;&#x1f970;來都來了&#xff0c;不妨點個關注叭&#xff01; &#x1f449;博客主頁&#xff1a;歡迎各位大佬!&#x1f448; 文章目錄 1. 字符串不可變性1.1 設計不可變1.2 修改字符串創建新對象1.3 為什么字符串不可變1.4 String類設計不可變的…

在Docker中使用GPU

一、安裝nvidia-container-toolkit 總之一句話&#xff1a;nvidia-docker和nvidia-docker2&#xff0c;nvidia-container-runtime 已經被英偉達迭代了&#xff0c;可以認為nvidia-container-toolkit是nvidia-docker和nvidia-docker2&#xff0c; nvidia-container-runtime 的替…

Vue3項目練習詳細步驟(第三部分:文章分類頁面模塊)

文章分類列表 主體結構 接口文檔 文章分類列表查詢接口數據綁定 Pinia狀態管理庫 axios請求攔截器 Pinia持久化插件-persist 未登錄統一處理 添加文章分類 主體結構 接口文檔 綁定請求數據 編輯文章分類 彈框結構 數據回顯 接口文檔 綁定請求數據 刪除分類 …

前端中var、let 或 const區別

前端中var、let 或 const區別 一、前言1.var2.let3.const4.總結 一、前言 當涉及 JavaScript 中的變量聲明時&#xff0c;開發人員通常會面臨選擇使用 var、let 或 const。雖然它們都可以用來聲明變量&#xff0c;但在實際應用中&#xff0c;它們之間有一些重要的區別。接下來…

在window中使用HTTP服務器獲取kali的文件

文章目錄 一、在window中使用HTTP服務器獲取kali的文件1、疑問2、執行條件3、成功讀取 一、在window中使用HTTP服務器獲取kali的文件 1、疑問 有時候kali上面有的文件想傳入window但是發現不允許這樣操作那怎么辦呢&#xff1f;特別是在一些限制工具的比賽中想把kali的文件傳…

數字化學校渠道的建造內容

數字化學校渠道的建造內容可以用階段來區分&#xff1a; 1.網絡硬件為主的建造 這一階段首要重視的是學校網絡的硬件基礎建造&#xff0c;一起供給部分網絡根本服務&#xff0c;與此一起&#xff0c;也進行部分信息使用內容的建造&#xff0c;如電子閱覽室、歸納管理信息體系等…

Android 圖片加載glide庫 一次通關

前言 Glide是一個由Bumptech開發的開源圖片加載庫&#xff0c;專門用于Android平臺。它被廣泛應用于Android應用中&#xff0c;以簡化圖片加載過程&#xff0c;并提高性能和效率。 Glide能夠快速加載圖片&#xff0c;同時減少頁面加載時間和內存消耗。Glide具有強大的緩存機制…

國產操作系統上apt命令詳解 _ 統信 _ 麒麟 _ 中科方德

原文鏈接&#xff1a;國產操作系統上apt命令詳解 | 統信 | 麒麟 | 中科方德 Hello&#xff0c;大家好啊&#xff01;今天給大家帶來一篇在國產操作系統上使用apt命令的詳解文章。apt&#xff08;Advanced Package Tool&#xff09;是Debian及其衍生發行版&#xff08;如統信UOS…

網絡流量監控:解讀網絡性能的關鍵

目錄 什么是網絡流量監控&#xff1f; 網絡流量監控的原理 網絡流量監控的應用 AnaTraf網絡流量分析儀簡介 結語 在當今數字化時代&#xff0c;網絡已成為人們日常生活和商業運營的核心。隨著企業和個人對網絡的依賴程度不斷增加&#xff0c;確保網絡穩定性和性能已成為至…

如何在JavaScript中檢查字符串是否包含子字符串?

在JavaScript中檢查一個字符串是否包含某個子字符串是一個常見任務。本文將介紹幾種實現該功能的方法&#xff0c;包括傳統方法和高級算法。 使用 indexOf() 方法 最基礎和常見的方法是使用 indexOf() 方法。該方法返回字符串在另一個字符串中的起始位置&#xff0c;如果未找…

TPshop商城的保姆教程(windows)

提前準備 phpStudy下載&#xff1a;https://www.xp.cn/download.html 選擇適合自己的版本下載 TPshop商城源文件下載鏈接&#xff1a; https://pan.baidu.com/s/143fLrxbwe9CTMCbyx7mXJQ?pwd6666 開始安裝 安裝完phpstudy后 以管理員的身份啟動phpstudy.exe 選擇合適自己…