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.mzph.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 选择合适自己…