剑指offer(12)旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{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)旋转数组的最小数字相关推荐
- 《LeetCode力扣练习》剑指 Offer 11. 旋转数组的最小数字 Java
<LeetCode力扣练习>剑指 Offer 11. 旋转数组的最小数字 Java 一.资源 题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 ...
- 剑指 Offer 11. 旋转数组的最小数字 简单
剑指 Offer 11. 旋转数组的最小数字 题目 解题思路 方法(一)直接遍历法 方法(二)二分查找法 题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组 ...
- 剑指offer 11. 旋转数组的最小数字(很详细!)
剑指offer 11. 旋转数组的最小数字 题目 解题思路 代码 题目 解题思路 一开始,我们就能直接想到,数组找最小值,那么不轻轻松松直接遍历一遍,用一个变量记录最小值,然后直接返回不就完事了? 但 ...
- 【LeetCode】剑指 Offer 11. 旋转数组的最小数字
[LeetCode]剑指 Offer 11. 旋转数组的最小数字 文章目录 [LeetCode]剑指 Offer 11. 旋转数组的最小数字 一.遍历 二.二分法 总结 一.遍历 算法步骤: 遍历数组 ...
- 【剑指 Offe】剑指 Offer 11. 旋转数组的最小数字
目录标题 算法汇总 题目 关键点 代码 1.解体方法 - 二分法 思路 代码 时间和空间复杂度 2.解题方法,如暴力法 思路 代码 时间和空间复杂度 算法汇总 以下是所有算法汇总,包括GitHub源码 ...
- 剑指Offer #06 旋转数组的最小数字(二分查找)| 图文详解
题目来源:牛客网-剑指Offer专题 题目地址:旋转数组的最小数字 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小 ...
- 剑指offer——11.旋转数组的最小数字
题目: 题1:实现快速排序 题2:年龄排序问题. 题3:旋转数组的最小数字 知识点: 快速排序算法,参考:https://blog.csdn.net/shujuelin/article/details ...
- 剑指offer:旋转数组的最小数字
题目 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的 ...
- 剑指offer——06旋转数组的最小数字(Python3)
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数 ...
- 剑指offer六:旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋 ...
最新文章
- 【Web API系列教程】1.2 — Web API 2中的Action Results
- php 二维数组中去重,PHP实现二维数组去重功能示例
- Java clone浅复制与深复制的区别
- 数据库:MySQL 团队开发规范,太详细了,建议收藏!
- SSD磁盘测试不达标排查
- threejs加载模型挤压变形_玻璃钢模具表面变形的原因及解决办法
- 你听过哪些匪夷所思的故事?
- Spring 事务传播原理及数据库事务操作原理
- web前端基础之JS
- Django模板语言及视图
- EDA技术与CPLD/FPGA开发应用实验教学
- column函数HTML5,【稻客说函数】COLUMN函数详解,ROW、COLUMN函数制作九九乘法表
- 阿里巴巴与星巴克合作 AR场景识别首次大规模商用
- 反向的css动画,动画方向 | animation-direction
- 走Java道路怎么样,如何学习
- python===range()函数
- 深入理解Android之AOP
- 电脑中毒了老是自动安装软件怎么办
- C++ STL函数 结构体数组sort()排序(henu.hjy)
- A4988/DRV8825步进电机驱动拓展板(HW-434)资料
热门文章
- 利用滞后——超前系统解决高阶随动系统(课程设计)
- http 文件服务器 性能测试,Http File Server
- MySQL登录后显示mariadb_mysql/mariadb学习记录——连接查询(JOIN)
- 四因素三水平正交试验表_测试用例设计方法(二)——正交实验法
- json反射java对象_Jackson通过反射将Json转化为java对象
- 电赛 | 电源题软件如何准备?
- 新一代神器STM32CubeMonitor介绍、下载、安装和使用教程
- 2015服务器性能排名,【新年大礼】史上最全CPU天梯图2015年V3.5版 全平台性能对比参考...
- 米10设置aac格式_Tipard Total Media Converter for Mac(全媒体格式转换器)
- uploadify.php 漏洞,PhotoStore “uploadify.php”任意文件上传漏洞