博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
旋转数组后的最小值
阅读量:4099 次
发布时间:2019-05-25

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

旋转数组后的最小值

    旋转之后的数组其实给以划分为两部分有序数组,最小的值其实就是两个有序数组的分界线,用二分查找解决此题(仅仅限于数组没有相同元素,如果有相同元素只能通过比那里数组)

思路:

1)定义两个指针lowhigh,一个指向数组的第一个元素,另一个指向数组的最后一个元素,由于该数组是有序数组旋转得到,所有第一个元素必然大于最后一个元素

2)找到数组中间元素

若中间元素大于第一个元素,则中间元素位于前面的递增子数组,则此时最小元素位于后半段数组,将low移至mid

若中间元素小于第一个元素,则中间元素位于后面递增数组,则最小元素位于中间元素的前面,我们让high移至mid

依次缩短范围

3)按照上面的思路,第一个指针low总是指向前面递增的数组,第二个指针指向后面递增数组元素

最终第一个指针将指向前面数组的最后一个元素,第二个指针指向后面数组中的第一个元素。也就是说他们将指向两个相邻的元素,而第二个指针指向的刚好是最小的元素,这就是循环的结束条件。

转载地址:http://oreii.baihongyu.com/

你可能感兴趣的文章
Windows 窗口底层原理
查看>>
一种函数指针的运用
查看>>
Win32程序之进程的原理
查看>>
C++虚函数原理
查看>>
MySQL的索引
查看>>
今天,Python信息量很大!
查看>>
Flash 已死,Deno 当立?
查看>>
编程差的程序员,90%都是吃了数学的亏!骨灰级开发:方法不对,努力也白费...
查看>>
编程差的程序员,90%都是吃了数学的亏!骨灰级开发:方法不对,努力也白费...
查看>>
都无代码了,还要程序员吗?
查看>>
程序员:凭自己能力吃饭,有什么理由瞧不起?
查看>>
面试想拿 10K,HR 说我只配7k?
查看>>
副业过万的程序员都知道的网站有哪些
查看>>
那些人生“开挂”的程序员,都在干什么?
查看>>
影响科学圈的那些计算机代码
查看>>
乐视视频 App 图标改为“欠 122 亿”,网友:我在别家分红包,却在你家随份子!...
查看>>
乔布斯18岁求职信拍卖价22.24万美元,值吗?
查看>>
为何程序员总喜欢写技术博客,看完恍然大悟...
查看>>
假如计算机是中国人发明的,那代码应该这么写
查看>>
科技公司最爱的 50 款开源工具,你都用过吗?
查看>>