把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。

思路:总的来说左边的数组大于右边的数,用折半查找法,找到俩个字数组的分界点

import java.util.ArrayList;
public class Solution {public int minNumberInRotateArray(int [] array) {//一个数组的首指针和最后的指针和中间指针int index1 = 0;int index2 = array.length-1;int indexMid = index1+(index1+index2)/2;//跳出循环的条件是while(true){if(index2-index1==1){indexMid = index2;break;}//如果出现三个数相等的情况,那只能逐个比较if(array[index1]==array[index2]&&array[index1]==array[indexMid]){int result = array[index1];for(int i=1;i<array.length;i++){if(array[i]<result)result = array[i];}return result;}//计算中间的值indexMid = index1+(index2-index1)/2;//如果中间的数大于第一个数,指针右移if(array[indexMid]>=array[index1])index1 = indexMid;//如果中间的数小于末尾的数,指针左移if(array[indexMid]<=array[index2])index2 = indexMid;}//return array[indexMid];}
}

剑指offer(12)旋转数组的最小数字相关推荐

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

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

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

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

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

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

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

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

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

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

  6. 剑指Offer #06 旋转数组的最小数字(二分查找)| 图文详解

    题目来源:牛客网-剑指Offer专题 题目地址:旋转数组的最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小 ...

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

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

  8. 剑指offer:旋转数组的最小数字

    题目 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的 ...

  9. 剑指offer——06旋转数组的最小数字(Python3)

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

  10. 剑指offer六:旋转数组的最小数字

    题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋 ...

最新文章

  1. 【Web API系列教程】1.2 — Web API 2中的Action Results
  2. php 二维数组中去重,PHP实现二维数组去重功能示例
  3. Java clone浅复制与深复制的区别
  4. 数据库:MySQL 团队开发规范,太详细了,建议收藏!
  5. SSD磁盘测试不达标排查
  6. threejs加载模型挤压变形_玻璃钢模具表面变形的原因及解决办法
  7. 你听过哪些匪夷所思的故事?
  8. Spring 事务传播原理及数据库事务操作原理
  9. web前端基础之JS
  10. Django模板语言及视图
  11. EDA技术与CPLD/FPGA开发应用实验教学
  12. column函数HTML5,【稻客说函数】COLUMN函数详解,ROW、COLUMN函数制作九九乘法表
  13. 阿里巴巴与星巴克合作 AR场景识别首次大规模商用
  14. 反向的css动画,动画方向 | animation-direction
  15. 走Java道路怎么样,如何学习
  16. python===range()函数
  17. 深入理解Android之AOP
  18. 电脑中毒了老是自动安装软件怎么办
  19. C++ STL函数 结构体数组sort()排序(henu.hjy)
  20. A4988/DRV8825步进电机驱动拓展板(HW-434)资料

热门文章

  1. 利用滞后——超前系统解决高阶随动系统(课程设计)
  2. http 文件服务器 性能测试,Http File Server
  3. MySQL登录后显示mariadb_mysql/mariadb学习记录——连接查询(JOIN)
  4. 四因素三水平正交试验表_测试用例设计方法(二)——正交实验法
  5. json反射java对象_Jackson通过反射将Json转化为java对象
  6. 电赛 | 电源题软件如何准备?
  7. 新一代神器STM32CubeMonitor介绍、下载、安装和使用教程
  8. 2015服务器性能排名,【新年大礼】史上最全CPU天梯图2015年V3.5版 全平台性能对比参考...
  9. 米10设置aac格式_Tipard Total Media Converter for Mac(全媒体格式转换器)
  10. uploadify.php 漏洞,PhotoStore “uploadify.php”任意文件上传漏洞