【LeetCode刷题】153. 寻找旋转排序数组中的最小值

  • 1. 题目链接
  • 2. 题目描述
  • 3. 解题方法
  • 4. 代码

1. 题目链接

153. 寻找旋转排序数组中的最小值

2. 题目描述

img

3. 解题方法

根据题目分析,可以明确一点,无论该数组如何旋转,都会有这样的一个性质,就是nums[0] > nums[n-1](除非旋转之后变回原数组)。

那么根据这一性质,数组就具有了二段性,就可以用二分法来解决问题。

4. 代码

class Solution {
public:
    int findMin(vector<int>& nums) {  
        int l = 0, r = nums.size() - 1;
        // 二分查找,根据nums[mid]的情况判断最小值在哪半个区间
        while(l < r)
        {
            int mid = (r - l) / 2 + l;
            if(nums[mid] <= nums[nums.size() - 1]) 
            {
                // nums[mid]小于等于最后一个数,最小值在mid左半区间
                r = mid;
            } 
            else
            {
                // nums[mid]大于最后一个数,最小值在其右半区间
                l = mid + 1;
            }
        }
        return nums[r]; // 结果存储在r中
    }
};

最后附上我的打卡记录,希望各位大佬可以监督我一下。img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/606513.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CST软件的界面快捷键汇总与操作窗口【入门基础】

CST界面操作快捷键 利用鼠标和键盘快捷键的GUI操作 View > Mouse Control 本章节介绍&#xff0c;使用鼠标和键盘快捷键&#xff0c;操作CST软件的2D/3D GUI (Graphical User Interface图形用户界面)的方法。为了快速方便地操作2D/3D Model&#xff0c;建议熟悉本章节的内…

springcloud报错:Failed to start bean‘webServerStartStop‘

如果你正在使用nacos进行服务注册&#xff0c;然后报一下错误&#xff1a; 那就说明的nacos没有打开&#xff0c;所以找到你的下载nacos的文件夹 好了&#xff0c;错误完美解决~

eNSP Pro 最新版安装实践

目录 写在前面什么是eNSP Pro版本配置需求 安装流程宿主机环境安装步骤 写在前面 最近听到说&#xff0c;华为的eNSP Pro不再限制账号使用了&#xff0c;马上尝试了一下。 官网下载链接&#xff1a; https://support.huawei.com/enterprise/zh/enterprise-professional-servic…

鸿蒙内核源码分析(环境脚本篇) | 编译鸿蒙原来如此简单

很香的 Docker 如果只是为了编译鸿蒙,初级的接触鸿蒙,docker是很香的,从第一次接触docker就对它爱不释手, 脏活累活它干了,少了太多的麻烦. docker 编译鸿蒙看编译环境篇就行了, L1 和 L2 都编译通过了.如果要深入的了解鸿蒙,比如调试鸿蒙的代码或编译工具,就需要另辟蹊径了. …

区块链的可扩展性三难问题

这个词是由以太坊的联合创始人Vitalik Buterin创造的&#xff0c;并提出了理想的区块链需要具备的三个特征&#xff1a;去中心化、可扩展性和安全性。 Vitalik还提出&#xff0c;区块链几乎不可能很好地实现所有这三个特征&#xff0c;所以会出现权衡。 因此&#xff0c;今天…

linux 使用intel oneapi报错报错

使用intel oneapi 2024.1.0 时经常报这个错误 因为当前 intel2024.1.0没有在使用 需要改回2024.0.0并安装适配的torch的包来运行

XN297 2.4GHz 单片高速无线收发芯片

概述 XN297是一款工作在2.400~2.483GHz世界通用ISM频段的单片无线收发芯片。该芯片集成 射频收发器、频率发生器、晶体振荡器、调制解调器等功能模块&#xff0c;并且支持一对多组网和带 ACK的通信模式。发射输出功率、工作频道以及通信数据率均可配置。 主要特性 1、低功…

三星硬盘好还是西数硬盘好?硬盘数据丢失怎么找回

在数字化时代&#xff0c;硬盘作为数据存储的核心组件&#xff0c;其品质与性能直接关系到用户的数据安全与使用体验。在众多硬盘品牌中&#xff0c;三星与西数无疑是两个备受关注的名字。那么&#xff0c;究竟是三星硬盘更胜一筹&#xff0c;还是西数硬盘更受用户青睐&#xf…

【项目】使用Yolov8 + tesseract 实现“营业执照”信息解析(OCR) + 输入可为图片或者pdf + 完整代码 + 整体方案 + 全网首发

本项目可用于毕业设计参考、实验等,营业执照分为横版和竖版,整体检测+识别效果如下所示: 说明:图片来源于网络,如有侵权,请联系作者删除。 目录

DRF 目录总结+思维导图

【0】思维导图链接 链接: https://gitmind.cn/app/docs/mcd0bc41 密码: 4350 【一】DRF 基础知识 DRF 基础知识-CSDN博客 【二】CBV 源码解析 Django CBV源码分析-CSDN博客 【三】APIView源码解析 DRF APIView源码分析-CSDN博客 【四】request源码分析 DRF APIView源码分…

# 从浅入深 学习 SpringCloud 微服务架构(十三)SCG 网关中使用 sentinel 限流

从浅入深 学习 SpringCloud 微服务架构&#xff08;十三&#xff09;SCG 网关中使用 sentinel 限流 一、SCG 网关中使用 sentinel 限流&#xff1a;入门案例 1、基于 Sentinel 的限流&#xff1a; 1&#xff09; Sentinel 支持对 Spring Cloud Gateway, Zuul 等主流的 API G…

【全开源】Java洗衣清洁服务同城清洗服务小程序源码

特色功能&#xff1a; 在线预约与支付&#xff1a;用户可以通过洗衣小程序在线预约洗衣服务&#xff0c;并选择支付方式进行支付&#xff0c;如微信支付、支付宝等。这种在线预约和支付的方式极大地方便了用户&#xff0c;提高了服务的便捷性。智能推荐与选择&#xff1a;根据…

探索C++的string:从基础到深入

文章目录 string类string类的接口string的常见构造string类对象的容量操作string类的遍历及访问操作string类对象的修改操作string类的非成员函数 总结 string类 C中的string类是一个非常重要的字符串处理工具&#xff0c;它提供了一种方便且灵活的方式来处理字符串。它位于标…

Vue3专栏项目 -- 一、第一个页面(下)

一、Dropdown 组件&#xff08;下拉菜单组件&#xff09;编码 1、基本功能&#xff1a;展示出下拉按钮和下拉菜单栏的样式 我们可以通过bootstrap来实现这个下拉框&#xff0c;需要注意它这个只是有样式&#xff0c;是没有行为的 然后这个下拉按钮的文字展示是根据用户名称展…

云推流-让ue/unity内容及3D大型模型内容轻松做到网页使用的解决方案

UE&#xff08;Unreal Engine&#xff09;和Unity作为当下最热门的游戏引擎之一&#xff0c;为开发者提供了强大的工具集和平台支持&#xff0c;使得创建高质量、交互式的3D场景变得越来越容易。 然而&#xff0c;当我们把这种较大的资源分享给其他人时&#xff0c;对方可能需要…

qml拖动交换之Gridview

qml拖动交换之Gridview 坐标变换代码 QML中mapToItem和mapFromItem的使用 坐标变换 代码 import QtQuick 2.6 import QtQuick.Window 2.2Window {visible: truewidth: 1024height: 480title: qsTr("Drag Icon")property ListModel dataModel: ListModel {ListEleme…

摩菲Murphy显示器显示表 总线编程器维修PV780B

Murphy仪器维修包括&#xff1a;摩菲数字显示器&#xff1b;摩菲监视仪表&#xff1b;摩菲CAN总线控制器等维修 维修故障包括&#xff1a;黑屏、指示灯无显示&#xff0c;触摸屏上电无反应&#xff0c; 上电蓝屏、白屏&#xff0c;通电几分钟后屏幕变为蓝屏&#xff0c;主板故…

46. UE5 RPG 增加角色受击反馈

在前面的文章中&#xff0c;我们实现了对敌人的属性的初始化&#xff0c;现在敌人也拥有的自己的属性值&#xff0c;技能击中敌人后&#xff0c;也能够实现血量的减少。 现在还需要的就是在技能击中敌人后&#xff0c;需要敌人进行一些击中反馈&#xff0c;比如敌人被技能击中后…

android基础-多线程

多线程&#xff1a; 创建子线程&#xff0c;子线程不允许直接更新UI&#xff0c;试想下如果多个线程去更新UI&#xff0c;则会造成资源错乱&#xff0c;如果枷锁就会使得代码冗余复杂。 android异步处理&#xff1a; 另一种异步多线程方法 doInBackground是在子线程中。

VisualGDB:Linux动态库项目创建、编译及库的使用

此篇接上篇 《VisualGDB:为Linux项目添加系统依赖库》,在本篇中我们重点分享一下如何基于VisualGDB 在VS中创建Linux动态库项目,如何编译及使用创建的动态库。 一、VisualGDB创建Linux动态库项目 如下,我们创建一个Linux下的动态库项目MyMath 二、编译动态库 我们稍微…
最新文章