剑指offer java -查找旋转数组的最小数字
/** * 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 -查找旋转数组的最小数字相关推荐
- 【剑指 Offe】11. 旋转数组的最小数字
题目:剑指 Offer 11. 旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数 ...
- 剑指 Offer 笔记: T45. 把数组排成最小的数
T45. 把数组排成最小的数 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个. 示例 1: 输入: [10,2] 输出: "102" ...
- 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].不能使用除法. 程 ...
- [剑指offer][JAVA][面试第40题][最小的k个数][快选][堆][BST]
[问题描述]面试第40题 最小的k个数 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 示例 : 输入:arr ...
- java旋转数组最小值,旋转数组的最小数字
题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转, ...
- 剑指Offer #06 旋转数组的最小数字(二分查找)| 图文详解
题目来源:牛客网-剑指Offer专题 题目地址:旋转数组的最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小 ...
- 《LeetCode力扣练习》剑指 Offer 11. 旋转数组的最小数字 Java
<LeetCode力扣练习>剑指 Offer 11. 旋转数组的最小数字 Java 一.资源 题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 ...
- 【剑指offer - C++/Java】6、旋转数组的最小数字
题目链接:旋转数组的最小数字 文章目录 1.题目描述 2.题目分析 3.代码 3.1 Java代码 3.2.C++代码 4.总结 1.题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数 ...
- 11. 旋转数组的最小数字(剑指 Offer 题解Java版)
文章目录 11. 旋转数组的最小数字 题目描述 题目链接 解题思路 可以借助下图理解过程 代码 11. 旋转数组的最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. ...
最新文章
- android 如何将WPS文档转成PDF
- IT围城,你是想挤进来还是想离开
- 【代码笔记】Web-ionic-select
- android studio内置终端,Android Studio Terminal xx不是内部或者外部命令
- shader 隐身_如何超越隐身障碍
- python基础入门--input标签、变量、数字类型、列表、字符串、字典、索引值、bool值、占位符格式输出...
- DG SG childSG fatherSG
- dw代码能在php运行吗,php新手求助,为什么在DW中设计里能看到运行php程序的结果,但…...
- Python3 openpyxl库
- 中级工程师考试2019——地图制图与地理信息系统
- 【换句话说】【等价描述】—— 定义及概念的不同描述
- python学习笔记26(python中__name__的使用)
- knockoutjs 经验总结
- 微信广告数据源创建查询与上报-PHP
- pandas绘图plot函数
- k8s创建service
- Codeforces Round #548 (Div. 2) C. Edgy Trees(并查集+快速幂)
- Python Matplotlib 散点图的绘制
- note edge android 6.0 root,三星Note Edge N9150刷机包带ROOT权限固件ZCU1BOH2线刷Rom
- Angular4 去掉url中的#,并解决刷新时的404问题