【剑指offer】旋转数组的最小值

转载请注明出处:http://blog.csdn.net/ns_code/article/details/25335043


    如今对算法真的是由衷地热爱啊,总是忍不住想要A题(本科都没这意识,哎,把时间都浪费在了考试拿奖学金和所谓的学生工作上了),并且数学一直以来都是自己的强项,希望在这方面以后能应用好。尽管在ACM方面还仅仅是个小学生。以后即使工作了,也要把ACM坚持下去。无关乎工作,仅仅关乎兴趣。

    

    依旧是剑指offer上的题目,第8题,在九度OJ上測试通过。

时间限制:1 秒

内存限制:32 兆

题目描写叙述:

把一个数组最開始的若干个元素搬到数组的末尾。我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。

比如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。

输入:

输入可能包括多个測试例子。对于每一个測试案例,

输入的第一行为一个整数n(1<= n<=1000000):代表旋转数组的元素个数。

输入的第二行包括n个整数。当中每一个整数a的范围是(1<=a<=10000000)。

输出:

相应每一个測试案例,

输出旋转数组中最小的元素。

例子输入:
53 4 5 1 2
例子输出:
1
    採用二分查找的策略,重点要考虑一些边界情况:旋转了0元素。即输入的是一个升序排列的数组、仅仅包括一个数字的数组、有非常多反复数字的数组等。

    AC代码:


}







本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5078572.html,如需转载请自行联系原作者


上一篇:Matlab实现二进制矩阵转换为十进制


下一篇:递归法求解十进制转换成二进制