【算法|二分查找No.6】leetcode 153. 寻找旋转排序数组中的最小值

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【手撕算法系列专栏】【LeetCode】
🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望对大家有所帮助
🍓希望我们一起努力、成长,共同进步。

原题链接:点击直接跳转到该题目

目录

  • 1️⃣题目描述
  • 2️⃣代码编写

1️⃣题目描述

已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:

  • 若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]
  • 若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]

注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …, a[n-2]] 。

给你一个元素值 互不相同 的数组 nums ,它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的 最小元素 。

你必须设计一个时间复杂度为 O(log n) 的算法解决此问题。

示例1:

输入:nums = [3,4,5,1,2]
输出:1
解释:原数组为 [1,2,3,4,5] ,旋转 3 次得到输入数组。

示例2:

输入:nums = [4,5,6,7,0,1,2]
输出:0
解释:原数组为 [0,1,2,4,5,6,7] ,旋转 4 次得到输入数组。

示例3:

输入:nums = [11,13,15,17]
输出:11
解释:原数组为 [11,13,15,17] ,旋转 4 次得到输入数组。

在这里插入图片描述

2️⃣代码编写

class Solution {
public:
    int findMin(vector<int>& nums) {
        int n = nums.size();
        int left = 0,right = n - 1;
        while(left < right)
        {
            int mid = left + (right - left) / 2;
            if(nums[mid] > nums[n - 1]) left = mid + 1;
            else right = mid;
        }
        return nums[left];
    }
};

最后就顺利通过啦!!!

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

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

相关文章

用excel计算行列式的值

例如&#xff0c;我们要计算下面这个3*3矩阵的行列式的值&#xff1a; 127348569 鼠标点到其它空白的地方&#xff0c;用来存放计算后的结果&#xff1a; 插入-》函数&#xff1a; 选择MDETERM函数&#xff0c;这个就是计算行列式的函数&#xff1a; 点击“继续”&#xff1a…

软件开发流程

目录 1 软件开发流程 第1阶段&#xff1a;需求分析 第2阶段&#xff1a;设计 第3阶段&#xff1a;编码 第4阶段&#xff1a;测试 第5阶段&#xff1a;上线运维 2 角色分工 3 软件环境 1). 开发环境(development) 2). 测试环境(testing) 3). 生产环境(production) &a…

MySQL最新2023年面试题及答案,汇总版(5)【MySQL最新2023年面试题及答案,汇总版-第三十五刊】

文章目录 MySQL最新2023年面试题及答案&#xff0c;汇总版(5)01、对MySQL的锁了解吗&#xff1f;02、MySQL中有哪几种锁&#xff1f;03、如何删除索引&#xff1f;04、索引能干什么?05、MySql, Oracle&#xff0c;Sql Service的区别&#xff1f;06、varchar与char的区别&#…

Longhorn跨AZ实现存储高可用

Longhorn跨AZ实现存储高可用 longhorn基础组件功能及其作用这里就不做介绍了 方案一 Longhorn跨AZ的高可用的就是一个PVC的replicas 均匀打散的不同的AZ区域之间&#xff0c;这样当某个AZ挂掉后&#xff0c;engine会立即使用另外一个数据副本&#xff0c;并重建这个副本&…

Rust图形界面egui初步

文章目录 下载和演示配置文件源代码 下载和演示 首先下载其源代码egui&#xff0c;然后进入其example文件夹&#xff0c;进入之后&#xff0c;使用cargo命令进行编译 cargo run --release -p hello_worldrust会自动下载一些相关的包和库&#xff0c;编译运行后&#xff0c;结…

【已解决】ModuleNotFoundError: No module named ‘sklearn‘

问题描述 Traceback (most recent call last): File "/home/visionx/nickle/temp/SimCLR/linear_evaluation.py", line 210, in <module> from sklearn.manifold import TSNE ModuleNotFoundError: No module named sklearn 解决办法 pip install numpy…

细数Leetcode上的背包问题

1 推荐刷题集合 2 lc 416. 分割等和子集 public boolean canPartition(int[] nums) {int nnums.length;int s0;for(int i0;i<n;i){snums[i];}if(s%21){return false;}boolean[]fnew boolean[s/21];f[0]true;for(int i0;i<n;i){for(int js/2;j>nums[i];j--){f[j]f[j]||…

Java TreeMap

TreeMap 是一个基于 key 有序的 key value 散列表。 map 根据其键的自然顺序排序&#xff0c;或者根据 map 创建时提供的 Comparator 排序不是线程安全的key 不可以存入null底层是基于红黑树实现的 TreeMap 的类结构图&#xff1a; 实现了 NavigableMap 接口&#xff0c;Na…

我在Vscode学OpenCV 色彩空间转换

文章目录 色彩【 1 】色彩空间&#xff08;色域&#xff09;&#xff08;1&#xff09;**RGB色彩空间**与xyz色彩空间的转换将 RGB 色彩空间转换为 XYZ 色彩空间将 XYZ 色彩空间转换为 RGB 色彩空间 &#xff08;2&#xff09;**CMYK色彩空间**&#xff08;3&#xff09;**HSV*…

这就是!Python的魅力!

文章目录 前言什么是pythonpython的由来我们为什么要学习python帮助python学习的网站总结 前言 各位朋友们&#xff0c;大家好。龙叔我后台经常收到私信问什么是Python&#xff1f;有必要学习这门语言么&#xff1f;今天&#xff0c;将通过本文告知大家Python是什么&#xf…

使用 Azure 机器学习实现图像分类

图像分类是计算机视觉领域中一个重要的任务。随着深度学习的发展&#xff0c;利用深度神经网络对图像进行分类已经成为一种主流方法。而Azure机器学习平台提供了丰富的工具和功能&#xff0c;使我们能够轻松地搭建和训练图像分类模型&#xff0c;并将其部署到实际应用中。本文将…

DL Homework 7

目录 一、用自己的语言解释以下概念 局部感知、权值共享 池化&#xff08;子采样、降采样、汇聚&#xff09;。会带来那些好处和坏处&#xff1f; 全卷积网络 低级特征、中级特征、高级特征 多通道。N输入&#xff0c;M输出是如何实现的&#xff1f; 11的卷积核有什么作用 二、…

抖音直播矩阵玩法,直播矩阵引流项目,每日精准引流500左右

今天我再分享一个专注于纯直播带货的玩法&#xff0c;这个案例不论是导流还是直播模式&#xff0c;都值得我们深入关注。某音直播矩阵玩法&#xff0c;每日精准引流500 这种直播方式通常会邀请两位模特&#xff0c;一个展示产品&#xff0c;一个递交产品&#xff0c;无需过多的…

傅里叶分析(1)

1 概述 傅里叶分析是信号分析中常用方法之一。傅里叶分析可将信号在时域和频域之间进行转换&#xff0c;从而分析信号在频域上的特点。 傅里叶分析&#xff08;Fourier analysis&#xff09;根据信号的时域数据特征&#xff0c;分为 4 个类别&#xff1a; 傅里叶级数&#x…

《网络协议》04. 应用层(DNS DHCP HTTP)

title: 《网络协议》04. 应用层&#xff08;DNS & DHCP & HTTP&#xff09; date: 2022-09-05 14:28:22 updated: 2023-11-12 06:55:52 categories: 学习记录&#xff1a;网络协议 excerpt: 应用层、DNS、DHCP、HTTP&#xff08;URI & URL&#xff0c;ABNF&#xf…

【PyQt】(自制类)简易的控件画布

说一下标题的意思&#xff0c;就是一个可往上面放QtWidgets控件(例如QLabel、QPushButton)并且画布可拖拽缩放的一个简易画布类。 强调一下的就是&#xff0c;这和涂鸦画布(类比于win自带的画图软件)不是同个东西。 只不过通过这个自制类我明白了一点的就是控件数量太多会造成…

一句话讲明白buck和boost电源电路

大部分教程就是垃圾 虽然buck和boost结构上很像&#xff0c;但是是两个原理完全不一样的东西 BUCK&#xff08;降压&#xff09;电源 buck就是把方波&#xff0c;用LC滤波器后&#xff0c;变成正弦波 滤波&#xff1a;就是让电压缓慢增加&#xff0c;缓慢减少。&#xff08…

《红蓝攻防对抗实战》十二.内网穿透之利用ICMP协议进行隧道穿透

内网穿透之利用ICMP协议进行隧道穿透 一.前言二.前文推荐三.利用ICMP协议进行隧道穿透1.ICMPsh获取反弹shell2.PingTunnel 搭建隧道 四.本篇总结 一.前言 本文介绍了利用ICMP协议进行隧道穿透的方法。ICMP协议不需要开放端口&#xff0c;可以将TCP/UDP数据封装到ICMP的Ping数据…

Gradio App生产环境部署教程

如果机器学习模型没有投入生产供人们使用&#xff0c;就无法充分发挥其潜力。 根据我们的经验&#xff0c;将模型投入生产的最常见方法是为其创建 API。 然而&#xff0c;我们发现这个过程对于 ML 开发人员来说可能相当令人畏惧&#xff0c;特别是如果他们不熟悉 Web 开发的话。…

任正非说:到现在我们终于可以说没有失败,但我们还不能说成功。

你好&#xff01;这是华研荟【任正非说】系列的第36篇文章&#xff0c;让我们聆听任正非先生的真知灼见&#xff0c;学习华为的管理思想和管理理念。 华研荟导语&#xff1a;今天的任正非先生讲话主要节选了他在2001-2004年的几个关于IPD、ISC的论述&#xff0c;可能大家会发现…