NYOJ-------笨蛋难题四

笨蛋难题四

时间限制:1000 ms  |           内存限制:65535 KB
难度:3
 
描述

这些日子笨蛋一直研究股票,经过调研,终于发现xxx公司股票规律,更可喜的是 笨蛋推算出这家公司每天的股价,为了防止别人发现他的秘密。他决定对于这家公司的 股票最多买一次,现在笨蛋已经将股票价格列了出来。(这已经不是笨蛋的难题了,他已经解决 呵 呵)。只想难为难为你呀,从股票价格表上,你能算出笨蛋的每股股票最多能赚多少钱吗?                 

 
输入
第一行一个n,表示n天(小于100000) 第二行 给出n天每股的价格
输出
每股最多赚多少钱
样例输入
4
947 267 359 771
7
669 735 322 794 397 565 181  
样例输出
504
472
来源
峰巅
上传者
王亚龙111

代码:简单题。。。。数组开到十万,考虑动态规划来求解.....

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #define maxn 100000
 4 
 5 int str[maxn+2];
 6 int main()
 7 {
 8   int n,i,record,pos,ma,start;
 9   while(scanf("%d",&n)!=EOF)
10   {
11       for(i=0;i<n;i++)
12       {
13           scanf("%d",&str[i]);
14       }
15       start=pos=1;
16       record=-99999999;
17       while(n-start>0)
18       {
19         ma=str[start];
20         for(i=start;i<n;i++)
21         {
22           /*搜寻段的最大值*/
23           if(ma<=str[i])
24           {
25             ma=str[i];
26             pos=i;
27           }
28         }
29         for(i=start-1;i<pos;i++)
30         {
31             if(record<(str[pos]-str[i]))
32                 record=(str[pos]-str[i]);
33         }
34         start=pos+1;
35       }
36       printf("%d
",record);
37   }
38   return 0;
39 }
View Code
原文地址:https://www.cnblogs.com/gongxijun/p/3422212.html