博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode Find Minimum in Rotated Sorted Array
阅读量:6427 次
发布时间:2019-06-23

本文共 1058 字,大约阅读时间需要 3 分钟。

Suppose a sorted array is rotated at some pivot unknown to you beforehand.

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

Find the minimum element.

You may assume no duplicate exists in the array.

对于Rotated Sorted Array系列,可以考虑用二分法

对于这道题,如果mid在区间1中,则num[mid]>num[low],如果mid在区间二中,则num[mid]<num[low]
用二分法搜索,最终结为low在第一个递增数组的最后一个,即指向最大的一个元素,hi指向的是第二个递增数组的第一个元素,即终结条件为hi-lo=1
此时最小的元素为hi指向的元素
但是可能出现一种情况,即将第0个元素旋转,则整个数组为一个递增数组 此时应为数组的第一个元素
1 package Find.Minimum.in.Rotated.Sorted.Array; 2  3 /** 4  * @author dell 5  *运用二分查找法进行查找 6  *查询效率为lgN 7  */ 8 public class FindMinimuminRotatedSortedArray { 9 public int findMin(int[] num) {10       int lo=0;11       int hi=num.length-1;12       int mid=lo;13       if(num.length==1) return num[0];14       //可能出现将前面的第0个元素搬到后面,此时整个数组是递增有序的15       //此时的情况是num[lo]
=num[hi]){17 //当hi-lo=1时此时的hi为第二个递增数组的第一个元素,即为最小元素18 if(hi-lo==1){19 mid=hi;20 break;21 }22 mid=(lo+hi)/2;23 if(num[mid]

 

 

转载于:https://www.cnblogs.com/criseRabbit/p/4317655.html

你可能感兴趣的文章
东莞发放光伏发电财政资金补助 莞企和居民都可以申请
查看>>
《全栈性能测试修炼宝典 JMeter实战》—第2章 2.6节性能测试相关术语
查看>>
《Spring攻略(第2版)》——1.2 配置Spring IoC容器中的Bean
查看>>
Hive之三种查询方式
查看>>
《大数据思维——从掷骰子到纸牌屋》
查看>>
javascript实现中国各大城市快速下拉选择
查看>>
Copycat - Overview
查看>>
redis命令操作之generic和string.java
查看>>
java的接口回调
查看>>
数据结构之自建算法库——单链表
查看>>
干掉你代码中的坏味道
查看>>
elasticsearch web界面查询
查看>>
python selenium,PhantomJS运用 抓取滚动条滚动加载的页面, js动作操作,模拟登陆...
查看>>
Comparable Comparator equals
查看>>
[LeetCode]--172. Factorial Trailing Zeroes
查看>>
对象跟踪小白?本文带你玩转OpenCV(C ++ / Python)
查看>>
28个你必须知道的HTML5的新特性,技巧以及技术
查看>>
使用阿里云code和git管理项目
查看>>
Java Hibernate 之 CRUD 操作
查看>>
mysql 主从复制相关的日志文件
查看>>