leetcode 11:旋转数组的最小数字

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。

给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [3,4,5,1,2][1,2,3,4,5] 的一次旋转,该数组的最小值为 1。

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

示例 1:

输入:numbers = [3,4,5,1,2]
输出:1

示例 2:

输入:numbers = [2,2,2,0,1]
输出:0

提示:

  • n == numbers.length
  • 1 <= n <= 5000
  • -5000 <= numbers[i] <= 5000
  • numbers 原来是一个升序排序的数组,并进行了 1n 次旋转

注意:本题与主站 154 题相同:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/

Related Topics

数组

二分查找

思路:二分查找

官方参考连接:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/solution/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-by-leetcode-s/

class Solution {public int minArray(int[] numbers) {int min = Integer.MAX_VALUE;int start = 0;int end = numbers.length-1;while (start < end){int mid = start + (end-start)/2;//最小值一定在[start,mid]范围if(numbers[mid] < numbers[end]){end = mid;//最小值一定在[mid+1,end]}else if(numbers[mid] > numbers[end]){start = mid +1;//此时最小值可能在mid的左侧或者右侧//但是肯定可以忽略掉最右边的end,因为他们两相等}else{end -= 1;}}return numbers[start];}
}

leetcode 11:旋转数组的最小数字相关推荐

  1. 《LeetCode力扣练习》剑指 Offer 11. 旋转数组的最小数字 Java

    <LeetCode力扣练习>剑指 Offer 11. 旋转数组的最小数字 Java 一.资源 题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 ...

  2. 【LeetCode】剑指 Offer 11. 旋转数组的最小数字

    [LeetCode]剑指 Offer 11. 旋转数组的最小数字 文章目录 [LeetCode]剑指 Offer 11. 旋转数组的最小数字 一.遍历 二.二分法 总结 一.遍历 算法步骤: 遍历数组 ...

  3. 剑指 Offer 11. 旋转数组的最小数字 简单

    剑指 Offer 11. 旋转数组的最小数字 题目 解题思路 方法(一)直接遍历法 方法(二)二分查找法 题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组 ...

  4. LeetCode-剑指 Offer 11. 旋转数组的最小数字

    剑指 Offer 11. 旋转数组的最小数字 思路一:先排序,返回第一个数组值 class Solution {public:int minArray(vector<int>& n ...

  5. 剑指offer 11. 旋转数组的最小数字(很详细!)

    剑指offer 11. 旋转数组的最小数字 题目 解题思路 代码 题目 解题思路 一开始,我们就能直接想到,数组找最小值,那么不轻轻松松直接遍历一遍,用一个变量记录最小值,然后直接返回不就完事了? 但 ...

  6. 【剑指 Offe】11. 旋转数组的最小数字

    题目:剑指 Offer 11. 旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数 ...

  7. 【剑指 Offe】剑指 Offer 11. 旋转数组的最小数字

    目录标题 算法汇总 题目 关键点 代码 1.解体方法 - 二分法 思路 代码 时间和空间复杂度 2.解题方法,如暴力法 思路 代码 时间和空间复杂度 算法汇总 以下是所有算法汇总,包括GitHub源码 ...

  8. 11. 旋转数组的最小数字(剑指 Offer 题解Java版)

    文章目录 11. 旋转数组的最小数字 题目描述 题目链接 解题思路 可以借助下图理解过程 代码 11. 旋转数组的最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. ...

  9. 剑指offer:面试题11. 旋转数组的最小数字

    题目:旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2, ...

  10. 剑指offer——11.旋转数组的最小数字

    题目: 题1:实现快速排序 题2:年龄排序问题. 题3:旋转数组的最小数字 知识点: 快速排序算法,参考:https://blog.csdn.net/shujuelin/article/details ...

最新文章

  1. tkinter之事件绑定
  2. ASP.NET 完成基于表单的身份验证
  3. 运动会加油稿计算机学院,信息工程学院运动会加油稿
  4. tplink连接服务器失败_管家婆财贸双全连接失败,服务器端没有找到加密狗
  5. DataGridView使用方法汇总
  6. oracle-只读数据文件的备份与恢复
  7. 书籍推荐:《Java数据结构与算法》
  8. 小狼毫输入法配置(搜狗词库+u模式+皮肤+同步)
  9. 高通QCA9563详细资料全集-datasheet-原理图-PCB-HDK等资料免费下载
  10. 智能家居之ESP8266接继电器接线方式
  11. 基于JAVA汽车租赁系统计算机毕业设计源码+数据库+lw文档+系统+部署
  12. 使用爬虫爬取某电影分享网站最新电影链接 -- 基于Python Requests库
  13. Go zap日志库使用
  14. 「AI初识境」给深度学习新手做项目的10个建议
  15. 从2014全球出版业50强排行榜看出版产业的格局演变
  16. mysql 循环控制语句介绍
  17. 他其实没那么喜欢你 豆瓣影评
  18. NMOS和PMOS作为电源开关经典场景
  19. CorelDRAW2023最新v24.4.0.623中文稳定版
  20. ubuntu平台下ffmpeg的编译安装方法

热门文章

  1. js 获取当前gmt时间_javascript怎么获取当前时间?
  2. 阿里云视频云互动虚拟技术,打造虚拟直播最佳沉浸式体验
  3. Everything使用教程
  4. 解决Nginx 404 not found
  5. Vision Transformer(ViT)解读
  6. 代码整洁之道第十二章-迭进
  7. centos php gd库,Centos 编译安装GD库
  8. asp.net 中 linkbutton 点击下载文件
  9. VS Code安装更新失败解决方案
  10. Bresenham算法理解