/** * Created by wqc on 2017/7/18. * 查找旋转数组的最小数字 * 把一个数组最开始的若干个元素搬到数组的末尾,称为数组的旋转 * 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素 * 如:3,4,5,1,2  为1,2,3,4,5的一个旋转,最小值为1 */public class Problem8_findMinNumber {    public Integer findMinNum(int[] array)    {        if(array == null)        {            return null;        }

        int leftIndex = 0;        int rightIndex =array.length-1;        int mid = 0;        while(array[leftIndex]>=array[rightIndex])        {            if(rightIndex-leftIndex <= 1)            {                mid = rightIndex;                break;            }

            mid = (leftIndex + rightIndex)/2;            if(array[leftIndex] == array[rightIndex] && array[leftIndex] == array[mid])            {                if(array[leftIndex + 1] != array[rightIndex - 1])                {                    mid = array[leftIndex + 1] < array[rightIndex -1] ? (leftIndex + 1) : (rightIndex - 1);                    break;                }else{                    leftIndex++;                    rightIndex--;                }            }else if(array[mid] >= array[leftIndex]){

                leftIndex = mid;            }else if(array[mid] <= array[rightIndex]){

                rightIndex = mid;            }        }        return array[mid];    }

}

转载于:https://www.cnblogs.com/qingchun-com/p/7248012.html

剑指offer java -查找旋转数组的最小数字相关推荐

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

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

  2. 剑指 Offer 笔记: T45. 把数组排成最小的数

    T45. 把数组排成最小的数 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个. 示例 1: 输入: [10,2] 输出: "102" ...

  3. java单个数组求积_[剑指offer][Java]构建乘积数组

    题目 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]A[1]...A[i-1]A[i+1]...A[n-1].不能使用除法. 程 ...

  4. [剑指offer][JAVA][面试第40题][最小的k个数][快选][堆][BST]

    [问题描述]面试第40题 最小的k个数 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 示例 : 输入:arr ...

  5. java旋转数组最小值,旋转数组的最小数字

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

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

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

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

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

  8. 【剑指offer - C++/Java】6、旋转数组的最小数字

    题目链接:旋转数组的最小数字 文章目录 1.题目描述 2.题目分析 3.代码 3.1 Java代码 3.2.C++代码 4.总结 1.题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数 ...

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

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

最新文章

  1. android 如何将WPS文档转成PDF
  2. IT围城,你是想挤进来还是想离开
  3. 【代码笔记】Web-ionic-select
  4. android studio内置终端,Android Studio Terminal xx不是内部或者外部命令
  5. shader 隐身_如何超越隐身障碍
  6. python基础入门--input标签、变量、数字类型、列表、字符串、字典、索引值、bool值、占位符格式输出...
  7. DG SG childSG fatherSG
  8. dw代码能在php运行吗,php新手求助,为什么在DW中设计里能看到运行php程序的结果,但…...
  9. Python3 openpyxl库
  10. 中级工程师考试2019——地图制图与地理信息系统
  11. 【换句话说】【等价描述】—— 定义及概念的不同描述
  12. python学习笔记26(python中__name__的使用)
  13. knockoutjs 经验总结
  14. 微信广告数据源创建查询与上报-PHP
  15. pandas绘图plot函数
  16. k8s创建service
  17. Codeforces Round #548 (Div. 2) C. Edgy Trees(并查集+快速幂)
  18. Python Matplotlib 散点图的绘制
  19. note edge android 6.0 root,三星Note Edge N9150刷机包带ROOT权限固件ZCU1BOH2线刷Rom
  20. Angular4 去掉url中的#,并解决刷新时的404问题

热门文章

  1. HDU 3082 HDOJ 3082 Simplify The Circuit ACM 3082 IN HDU
  2. JS:ES10新特性
  3. webpack那些事:浅入深出-源码解析构建优化
  4. ionic checkbox 精简用法
  5. weka分类器怎么设置类别_AI 迁移学习怎么玩?手把手教你实战迁移学习
  6. 上市公司回购股票是利好还是利空?
  7. 公司盘点员工,不上班的员工要给钱吗?
  8. 在哪一瞬间,你意识到那个人不能深交?
  9. 同为EA888发动机,迈腾和奥迪A4L,为何差价10万多?
  10. 一定要吃透的四个人性真相