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

news2024/10/1 0:15:19

题目

链接:leetcode链接

在这里插入图片描述

思路分析(二分)

题目要求O(logN)的时间复杂度,那就必然是使用二分算法了。

怎么个二分呢?
首先,我们来寻找二段性

我们看示例一:
3,4,5,1,2
旋转后,我们可以发现最小元素的左边全部都比最右边的值大,最小元素右边全部都小于等于最右边的值。

根据这一规则,二分不就来了嘛
很明显,是寻找左边界的二分。

细节:

while(left < right) //这里不能取等,不然死循环
mid = left + (right - left) / 2;
left = mid + 1;
right = mid;
题目要求返回最小元素,不是最小元素的下标

代码

int findMin(vector<int>& nums) {
        int left = 0,right = nums.size() - 1;

        while(left < right)
        {
            int mid = left + (right - left) / 2;
            if(nums[mid] > nums[nums.size() - 1]) left = mid + 1;
            else right = mid;
        }

        return nums[left];
    }

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode 面试经典150题 172.阶乘后的零

题目&#xff1a;给定一个整数 n &#xff0c;返回 n! 结果中尾随零的数量。 提示 n! n * (n - 1) * (n - 2) * ... * 3 * 2 * 1 思路&#xff1a; 代码&#xff1a; class Solution {public int trailingZeroes(int n) {return n 0 ? 0 : n / 5 trailingZeroes(n / 5);}…

Android-由switch-case和view.getId()引起的bug:错误:需要常量表达式 的解决办法

无意中&#xff0c;使用按钮测试点击事件&#xff0c;在此过程中使用了switch case语句&#xff0c;在条件switch中使用了view.getId()&#xff0c;出现错误。我记得很早之前写Android程序没啥问题&#xff0c;于是研究了一番。 度娘一番才知道&#xff0c;是因为R文件的缘故。…

【视频目标分割-2024CVPR】Putting the Object Back into Video Object Segmentation

Cutie 系列文章目录1 摘要2 引言2.1背景和难点2.2 解决方案2.3 成果 3 相关方法3.1 基于记忆的VOS3.2对象级推理3.3 自动视频分割 4 工作方法4.1 overview4.2 对象变换器4.2.1 overview4.2.2 Foreground-Background Masked Attention4.2.3 Positional Embeddings 4.3 Object Me…

git eslint扩展,解决git提交因为空格差异而报错

项目场景&#xff1a; 在前端项目开发中&#xff0c;经常会使用eslint,这个方法的好处就是严格要求代码格式。让代码更为严谨。 问题描述 以为eslint格式过于严谨&#xff0c;在git提交的时候&#xff0c;经常会因为一个多了一个空格导致代码提交失败。 原因分析&#xff1a;…

【C++打怪之路Lv4】-- 类和对象(中)

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;C打怪之路&#xff0c;python从入门到精通&#xff0c;数据结构&#xff0c;C语言&#xff0c;C语言题集&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文(平均质量分82)&#…

C语言第三周课

目录 一、C语言中基本语句的分类&#xff1a; 二、数据的输入和输出 1.putchar函数 2.getchar函数 3.printf函数 printf() 的正常输出格式&#xff1a; 输出控制符大全 4.scanf函数 三、顺序结构 四、选择结构 1.if 2.switch 五、循环结构 1.for循环 2.while循环 3.…

【读书笔记-《网络是怎样连接的》- 1】Chapter1-从Web浏览器开始

网络之旅的第一章&#xff0c;我们从在浏览器中输入url开始。本章主要介绍三部分内容。首先是在Web浏览器中输入URL后&#xff0c;浏览器是如何解析URL并生成HTTP请求消息的。生成请求消息后&#xff0c;浏览器需要将请求发送给Web服务器&#xff0c;需要知道Web服务器的IP地址…

2024年必考这个人工智能AI大模型证书!

2024必考这个人工智能AI大模型证书&#xff1a;名额有限&#xff0c;报满截止&#xff01; Chat GPT 的发布&#xff0c;让大语言模型成了人工智能的焦点。尤其近期发布的大模型各业务场景应用应接不暇&#xff0c;为行业带来新的发展机遇&#xff0c;甚至将重构AI行业。AI行业…

C语言系列4——指针与数组(1)

我们开始C语言的指针与数组 这部分开始进阶了&#xff0c;得反复学习 在开始正题之前&#xff0c;写说一下我们都知道当写一个函数的时候需要进行传参&#xff0c;当实参传递给形参的时候&#xff0c;形参是有独立空间的&#xff0c;那么数组传参又是怎么样的呢&#xff0c;我…

Docker的入门详解

What is docker&#xff1f; Docker是一个开源的应用容器引擎&#xff0c;它基于Go语言开发&#xff0c;并遵从Apache2.0协议。Docker允许开发者将他们的应用以及依赖包打包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的Linux或Windows操作系统的机器上&am…

MySQL高阶2004-职员招聘人数

目录 题目 准备数据 分析数据 实现 题目 一家公司想雇佣新员工。公司的工资预算是 70000 美元。公司的招聘标准是&#xff1a; 雇佣最多的高级员工。在雇佣最多的高级员工后&#xff0c;使用剩余预算雇佣最多的初级员工。 编写一个SQL查询&#xff0c;查找根据上述标准雇…

【Spring基础3】- Spring的入门程序

目录 3-1 Spring的下载3-2 Spring的 jar 包3-3 第一个 Spring程序第一步&#xff1a;添加spring context的依赖&#xff0c;pom.xml配置如下第二步&#xff1a;添加junit依赖第三步&#xff1a;定义bean&#xff1a;User第四步&#xff1a;编写spring的配置文件&#xff1a;bea…

Qt开发第一讲

一、Qt项目里面有什么&#xff1f; 对各个文件的解释&#xff1a; Empty.pro文件 QT core gui # 要引入的Qt模块&#xff0c;后面学习到一些内容的时候可能会修改这里 #这个文件相当于Linux里面的makefile文件。makefile其实是一个非常古老的技术了。 #qmake搭配.pr…

【C++篇】启航——初识C++(下篇)

接上篇【C篇】启航——初识C&#xff08;上篇&#xff09; 目录 一、引用 1.引用的概念 2.引用的基本语法 3.引用的特点 3.1 别名 3.2 不占用额外内存 3.3 必须初始化 3.4 不能为 NULL 4.引用的使用 4.1 函数参数传递 4.2 返回值 4.3 常量引用 5.引用和指针的关…

从数字化到智能化,智慧园区让管理更高效

在当今科技飞速发展的时代&#xff0c;园区管理也正经历着从数字化到智能化的深刻变革。智慧园区的建设&#xff0c;让管理变得更加高效、便捷和智能。 数字化是智慧园区建设的基础。通过物联网、大数据、云计算等技术&#xff0c;园区内的各种设施、设备和系统实现了互联互通…

基于Java的建筑节能监测系统+能源管理+公共建筑能耗监测系统+建筑能耗监测系统+节能监测系统+能源管理系统

介绍 建筑节能监测系统是基于计算机网络、物联网、大数据和数据可视化等多种技术融合形成的一套节能监测系统 系统实现了对建筑电、水、热&#xff0c;气等能源、资源消耗情况的实时监测和预警、动态分析和评估&#xff0c;为用户建立了科学、系统的节能分析方法&#xff0c;…

【Python|接口自动化测试】使用requests库发送HTTP请求

1.requests模块介绍 Python的requests模块是一个非常流行的第三方库&#xff0c;用于发送HTTP请求。它简化了与Web服务进行交互的过程&#xff0c;使得开发人员可以更方便地处理HTTP请求和响应。 本篇文章需要对HTTP和Python有一定的了解&#xff0c;只会解释关键性的操作 安…

【刷点笔试面试题试试水】找错—使用strlen()函数代替sizeof计算字符串长度

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: #include <iostream> using namespace std;void UpperCase(ch…

【2024工业3D异常检测文献】CMDIAD: 基于跨模态蒸馏驱动的多模态工业异常检测

Incomplete Multimodal Industrial Anomaly Detection via Cross-Modal Distillation 1、Background 近年来&#xff0c;基于3D点云和RGB图像的多模态工业异常检测(IAD)研究强调了利用模态间的冗余性和互补性对于精确分类和分割的重要性。 在项目中&#xff0c;提出了CMDIAD方…

20240930编译orangepi5的Android12使用HDMI0输出

20240930编译orangepi5的Android12使用HDMI0输出 2024/9/30 9:44 缘起&#xff0c;3月份的时候&#xff0c;看PDD拼多多的优惠券给力&#xff01; 就入手了香橙派Orange Pi 5。 自从制作TF卡的启动卡的时候&#xff0c;坏了一张SanDisk的32GB的TF卡。 从此就对TF卡启动无比抵触…