• NYOJ 739 笨蛋难题四 (数学)


    题目链接

    描述

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

    • 输入
      第一行一个n,表示n天(小于100000)第二行 给出n天每股的价格
    • 输出
      每股最多赚多少钱
    • 样例输入
      4
      947 267 359 771
      7
      669 735 322 794 397 565 181
    • 样例输出
      504
      472

    分析:

    弄懂了这道题,你就离土豪不远了···· 加油

    其实提议很简单,就是要你求出在那天买入股票然后在那一天卖出,获得的利润最大。当然了,你必须的保证你在卖出的时候手里是有股票可以卖的。

    第一思想是不是就是将当前这一天的股票价格与之前每一天的股票价格做差值,求出差值最大的,没错思路很正确,但是wa的也很爽快,因为n的范围比较大,时间上肯定会超。

    所以呢,首先要找出前几天中的股票的最低价格,然后再求出当前这一天与最低价格的差值,其中最大值即为所求。

    代码:

    #include<string>
    #include<iostream>
    #include<algorithm>
    #include<stdio.h>
    #include<string.h>
    #include<stack>
    using namespace std;
    int main()
    {
        int n;
        int a[100009];
        while(~scanf("%d",&n))
        {
            int Min=0x3f3f3f3f;
            int Max=-0x3f3f3f3f;
            for(int i=0; i<n; i++)
            {
                scanf("%d",&a[i]);
                if(i>=1)
                {
                    Min=min(Min,a[i-1]);
                    Max=max(Max,a[i]-Min);
                }
            }
            printf("%d
    ",Max);
        }
        return 0;
    }
  • 相关阅读:
    ASP.NET页面打印技术的总结
    js传递中文参数的url到asp(jscript)解释得到的中文参数为乱码的解决方法
    header的用法(PHP)
    oracle 11g road(/dev/shm需注意)
    mysql 主从同步 Error 'Out of range value for column的问题
    linux shell 过滤特殊字符开始的行
    Oracle穿越incarnation恢复数据
    多普达A6388刷机2.3
    【忽悠普通人用】隐藏文件夹的方法
    电脑同时使用双网卡实现方法
  • 原文地址:https://www.cnblogs.com/cmmdc/p/6740698.html
Copyright © 2020-2023  润新知