【剑指offer】旋转数组的最小值
来源:互联网 发布:淘宝怎么找货到付款 编辑:程序博客网 时间:2024/06/04 19:52
转载请注明出处: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
AC代码:
#include<stdio.h>#include<stdlib.h>int main(){int n;while(scanf("%d",&n) != EOF){int *A = (int *)malloc(n*sizeof(int));if(A == NULL)exit(EXIT_FAILURE);int i;for(i=0;i<n;i++)scanf("%d",A+i);int p1 = 0;int p2 = n-1;int mid = p1;while(A[p1] >= A[p2]){if(p2-p1 == 1){mid = p2;break;}mid = (p1+p2)/2;//特殊情况,只能顺序查找if(A[p1]==A[mid] && A[p2]==A[mid]){mid = p1;int i;for(i=p1+1;i<=p2;i++){if(A[mid] > A[i])mid = i;}break;}if(A[mid]>=A[p1])p1 = mid;else if(A[mid]<=A[p2])p2 = mid;}printf("%d\n",A[mid]);free(A);A = 0;}return 0;}
/**************************************************************
Problem: 1386
User: mmc_maodun
Language: C
Result: Accepted
Time:700 ms
Memory:4820 kb
****************************************************************/
4 0
- 【剑指offer】旋转数组的最小值
- [剑指offer]旋转数组的最小值
- 【剑指offer】旋转数组的最小值
- 【剑指offer】旋转数组的最小值
- 【剑指offer之旋转数组的最小值】
- 剑指offer -- 旋转数组最小值
- 剑指offer系列之六:旋转数组的最小值
- 剑指offer——旋转数组的最小值
- 【剑指offer】题8:旋转数组的最小值
- Offer题8 旋转数组的最小值
- 剑指offer之旋转数组中的最小值
- 剑指offer(5) 旋转数组中的最小值
- 剑指offer:求一个旋转数组中的最小值
- 【剑指offer】面试题8:旋转数组中的最小值
- 剑指offer 面试题8 输出旋转数组最小值
- LintCode-剑指Offer-(159)寻找旋转排序数组中的最小值
- LintCode-剑指Offer-(28)寻找旋转排序数组中的最小值
- 剑指offer:(6)查找和排序:旋转数组中的最小值
- c++内存部局(虚继承)
- 关于如何判断当前用户对文件有无写权限
- 深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
- [容斥原理] hdu 4407 Sum
- JFreeChart API汉化版
- 【剑指offer】旋转数组的最小值
- XML 命名空间
- OCP-1Z0-051 第106题 COALESCE,DECODE,NVL,NULLIF函数的使用
- 时区夏令时测试Checklist
- 深入理解JavaScript系列(19):求值策略(Evaluation strategy)
- Activity的生命周期
- snmp++ 懒人配置及使用法二(VS2010)
- HDU 1875 畅通工程再续
- PHP归档phar性能测试