• 九度OJ 1261:寻找峰值点 (基础题)


    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:500

    解决:37

    题目描述:

    给定一个整数序列,该整数序列存在着这几种可能:先递增后递减、先递减后递增、全递减、全递增。
    请找出那个最大值的点。

    输入:

    输入的第一行包括一个整数N(1<=N<=10000)。
    接下来的一行是N个满足题目描述条件的整数。

    输出:

    可能有多组测试数据,对于每组数据,
    输出这N个数中最大的那个数。

    样例输入:
    5
    1 2 3 2 1
    样例输出:
    3

    思路:

    遍历求最大值不就行吗?

    结果WA。我认为判题有问题。

    附上能AC的代码和我的代码。


    代码1(能AC的代码):

    #include<stdio.h>
     
    int num[11000];
     
    int max(int x, int y)
    {
        return x>y ? x : y;
    }
     
    int TriSearch(int *num, int n, int left, int right)
    {
        int mid=0, midmid;
        while(left < right)
        {
            if(left+1 == right) return max(num[left],num[right]);
            mid = (left+right)/2;
            if(mid+1 == right)
                midmid = (mid+right)/2+1;
            else
                midmid = (mid+right)/2;
            if(midmid == right)
                return max(num[left], max(num[mid], num[right]));
            if(num[mid] >= num[midmid]) right = midmid;
            else left = mid;
        }
        return num[mid];
    }
     
    int main()
    {
        int n;
        while(scanf("%d", &n) != EOF)
        {
            for(int i=0; i<n; i++)
                scanf("%d", &num[i]);
            int ans = TriSearch(num, n, 0, n-1);
            printf("%d
    ", ans);
        }
    }
    /**************************************************************
        Problem: 1261
        User: liangrx06
        Language: C
        Result: Accepted
        Time:560 ms
        Memory:956 kb
    ****************************************************************/



    代码2(我的代码):

    #include <stdio.h>
     
    #define N 10000
     
    int main(void)
    {
        int n, i, max;
        int a[N];
     
        while (scanf("%d", &n) != EOF)
        {;
            for(i=0; i<n; i++)
            {
                scanf("%d", &a[i]);
                if (i == 0)
                    max = a[0];
                else if (a[i] > max)
                    max = a[i];
            }
            printf("%d
    ", max);
        }
     
        return 0;
    }
    /**************************************************************
        Problem: 1261
        User: liangrx06
        Language: C
        Result: Wrong Answer
    ****************************************************************/


    编程算法爱好者。
  • 相关阅读:
    同样的请求img代码,单个html文件和项目中的html文件请求结果不一样
    CSS中A标签断字不换行问题(基础知识)
    句柄无效。 (异常来自 HRESULT:0x80070006 (E_HANDLE))
    Ext.Net 控件FileUploadField上传文件
    500内部服务器错误。你查找的资源存在问题,因而无法显示
    WebService 错误:无法加载协定为xxx的终结点配置部分,因为找到了该协定的多个终结点配置
    SyntaxError: unterminated string literal
    servlet入门
    myeclipse视图布局恢复
    JavaWEB开发入门
  • 原文地址:https://www.cnblogs.com/liangrx06/p/5083807.html
Copyright © 2020-2023  润新知