zoukankan      html  css  js  c++  java
  • 【水题】求条件最大值

    求条件最大值

    Time Limit: 1000MS Memory limit: 65536K

    题目描述

    懒得想背景故事了,开门见山。
    有一个长度为n的整数数列A0,A1,A2....An-1。从中找出两个整数Ai和Aj,Ai在Aj的前面,即i<j,使得Ai-Aj尽可能的大。请输出可能的最大的Ai-Aj的值。

    输入

     多组输入。每一组测试数据的第一行是一个整数n,然后第二行是n个整数,第i个数
    表示Ai。(测试数据组数<=20,2<=n<=10^6,-10^8<=Ai<=10^8).

    输出

     每组测试数据输出一行一个整数,为可能的最大的Ai-Aj的值。

    示例输入

    5
    3 1 2 4 3
    5
    3 1 2 4 1

    示例输出

    2
    3

    应该从后开始求最小值,当从后开始只有1个数的时候,最小值就是本身;当从后开始只有2个数的时候,应该是两个数中的最小值;当从后开始只有3个数的时候,
    最小值为3个数中的最小值......当从后开始数n个数的时候,最小值为n个数中的最小值,先把这个求出来,然后再遍历比较就可以了。

     1 #include<iostream>  
     2 #include<algorithm>  
     3 #include<stdio.h>  
     4   
     5   
     6 using namespace std;  
     7   
     8 int s[1000100], t[1000100];  
     9 int maxx, minn;  
    10   
    11 int main()  
    12 {  
    13     int n, i,  k=1, maxx, minn;  
    14     while(cin>>n)  
    15     {  
    16         k =1;  
    17         minn = 1e9;  
    18         maxx = -1e9;  
    19         for(i=0; i<n; i++)  
    20             scanf("%d", &s[i]);  
    21         minn = s[n-1];  
    22         t[k++] = minn;  
    23         for(i=n-2; i>=1; i--)//求最小值
    24         {  
    25             if(s[i]<minn)  
    26             {  
    27                 t[k++] = s[i];  
    28                 minn = s[i];  
    29             }  
    30             else  
    31             {  
    32                 t[k++] = minn;  
    33             }  
    34   
    35         }  
    36       
    37         for(i=0; i<n-1; i++)  
    38         {  
    39             if( (s[i]-t[n-i-1]) >maxx)  
    40             {  
    41                 maxx = s[i]-t[n-i-1];  
    42             }  
    43         }  
    44         printf("%d
    ", maxx);  
    45     }  
    46     return 0;  
    47 }  
  • 相关阅读:
    IDA*算法
    智能指针
    C51模拟I2C,音乐播放(记忆)
    类与对象解剖(虚函数)
    MFC类层次结构
    平面几何
    IDAstar搜索
    MFC程序初始化过程
    放苹果 分治法
    【读后感】编程珠玑 第九章 代码调优
  • 原文地址:https://www.cnblogs.com/6bing/p/4133561.html
Copyright © 2011-2022 走看看