zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    PAIP HTML的调试与分析工具
    paip.输入法编程一级汉字1000个
    paip.DEVSUIT ADMIN 初次使用时出现两个LICENSE提醒
    int main(int argc,char *argv[])中参数的意义
    深入理解C语言小记
    曲线拟合的最小二乘法
    C51 bit和sbit的区别
    曲线拟合的最小二乘法
    有关verilog truncated value with size 32 to match size of target警告的处理
    C51 bit和sbit的区别
  • 原文地址:https://www.cnblogs.com/cmmdc/p/6740698.html
Copyright © 2011-2022 走看看