AOJ-ALDS1_1_D Maximum Profit【最值+水题】_海岛Blog的博客-程序员宅基地

技术标签: AOJ-ALDS1_1_D  # ICPC-AOJ  # ICPC水题之二  Maximum Profit  # ICPC-序列处理  

Maximum Profit

  Aizu - ALDS1_1_D 

You can obtain profits from foreign exchange margin transactions. For example, if you buy 1000 dollar at a rate of 100 yen per dollar, and sell them at a rate of 108 yen per dollar, you can obtain (108 - 100) × 1000 = 8000 yen.

Write a program which reads values of a currency RtRt at a certain time tt (t=0,1,2,...n1t=0,1,2,...n−1), and reports the maximum value of RjRiRj−Ri where j>ij>i .

Input

The first line contains an integer nn. In the following nn lines, RtRt (t=0,1,2,...n1t=0,1,2,...n−1) are given in order.

Output

Print the maximum value in a line.

Constraints

  • 2n200,0002≤n≤200,000
  • 1Rt1091≤Rt≤109

Sample Input 1

6
5
3
1
3
4
3

Sample Output 1

3

Sample Input 2

3
4
3
2

Sample Output 2

-1

问题链接AOJ-ALDS1_1_D Maximum Profit

问题简述

  给定一组数,计算它们的最大差值。

问题分析

  本题的关键是设计一个时间复杂度为O(n)的算法。

  如果简单地用暴力法来解就Out了!

  最大差值有可能是负数,需要注意。

程序说明

  最大值的初值应该其变量类型的最小值,使用头文件limits.h中预先定义的值是一种好的选择。

题记:(略)


参考链接:(略)


AC的C++语言程序如下:

/* AOJ-ALDS1_1_D Maximum Profit */

#include <iostream>
#include <limits.h>

using namespace std;

const int N = 2e5;
int r[N];

int main()
{
    int n;

    cin >> n;
    for(int i=0; i<n; i++)
        cin >> r[i];

    int maxval = INT_MIN;
    int minval = r[0];
    for(int i=1; i<n; i++) {
        maxval = max(maxval, r[i] - minval);
        minval = min(minval, r[i]);
    }

    cout << maxval << endl;

    return 0;
}






版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tigerisland45/article/details/79336294

智能推荐

GJK碰撞检测(Matlab代码实现)_matlab 碰撞检测_荔枝科研社的博客-程序员宅基地

用形式化方法对算法进行验证是一种十分有效的手段,尤其是定理证明的方法用严格的数学公理和定理推理证明逻辑模型的性质,对所验证的性质而言是完备的,基于GJK算法设计了计算空间两条线段间距离的算法,用定理证明器HOL4对其相关的定义和定理进行形式化定义和证明,进而基于霍尔逻辑完成形式化表示和证明,对该算法的正确性实现了形式化验证。GJK是通过支持映射来计算空间中两个凸体间距的渐进算法,虽然其数学模型比较复杂,且难以理解,但是基于GJK模型的算法有快速,易实施且适用于多种凸体的优点。行百里者,半于九十。_matlab 碰撞检测

CSS 标签居中固定到底部_form-group固定布局在底部_天天上天庭的博客-程序员宅基地

style="position:fixed; bottom:0; right: 42%"在标签中加入这个样式就可以生效 ,样图<div class="form-group" style="position:fixed; bottom:0; right: 42%"> <div > <button class="btn btn-primary" type="submit">打印发票</button> .._form-group固定布局在底部

Nginx+Tomcat 动静分离实现负载均衡-程序员宅基地

0.前期准备使用Debian环境。安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等。1.一份Nginx.conf配置文件Nginx+Tomcat 动静分离实现负载均衡Nginx+Tomcat 动静分离实现负载均衡基本配置这个文件,就可以实现负载了。但是里面的各种关系要了解就比较麻烦了。这篇博客,也不是教学篇,是记录一下,方便以后自己看了。2.基础讲解现在...

PCB设计——PCB设计中是否应该去除死铜?_敷铜要移除死铜吗-程序员宅基地

PCB死铜也叫PCB孤岛,是指在PCB中孤立无连接的铜箔,一般都是在铺铜时产生,那PCB设计中是否应该去除死铜呢?有人说应该去除,原因有三个:1、会造成EMI问题;2、增强搞干扰能力;3、死铜没什么用。  但也有人说应该保留下来,原因有四个:1、去除会有大片空白,不美观;2、可以增加板子机械性能,避免出现受力不均弯曲的现象。  小捷哥的看法是尽量去除死铜,原因如下:  1、尽量..._敷铜要移除死铜吗

树莓派控制步进电机_树莓派驱动电机_SlowFeather的博客-程序员宅基地

树莓派控制步进电机前言设备连接源码前言测试步进电机设备名称型号树莓派3B+步进电机28BYJ-48-5V步进电机驱动板UL2003芯片驱动板连接步进电机插入驱动板驱动板VCC接树莓派5V驱动板GND接树莓派GND驱动板INA接树莓派20驱动板INB接树莓派26驱动板INC接树莓派16驱动板IND接树莓派19源码import RPi.GPIO as GPIOimport time#BCM 对应 GPIO numbers , BOARD _树莓派驱动电机

欢迎使用百度文库爬虫!你猜付费的能不能爬!_爬虫可以爬去百度文库付费的知识么-程序员宅基地

百度文库爬虫本程序可以通过网络爬虫实现对大部分百度文库资源的获取安装所需要的python库以下是爬虫需要用到的几个python库,需要提前安装好。不会安装或者安装失败的同学可以参考我另一篇博客1.beautifulsoup42. requests3. bs4源代码import requestsfrom bs4 import BeautifulSoupurl = 'https://wenku.baidu.com/view/cff4b11fe418964bcf84b9d528e_爬虫可以爬去百度文库付费的知识么

随便推点

ubuntu使用技巧,ubuntu sudo不需要输入密码-程序员宅基地

其实思路都一样,主要是编辑/etc/sudoers:$sudo visudo在其中添加一行,若你想让一个用户sudo时不需要进行密码输入则以用户名开头,若想让一个组有此特权则以%组名开头,例如:gnuhpc ALL=NOPASSWD: ALL表示gnuhpc在任何的命令下都不需要进行sudo操作。%sysadmin ALL=NOPASSWD: /usr/bin/apt-get, /usr...

将同一列表中的多个小列表合并为一个普通列表-程序员宅基地

import numpy as npa = list()a.append(list(np.arange(4)))a.append(list(np.arange(5, 7)))b = str(a)b = b.replace('[', '')b = b.replace(']', '')a = list(eval(b))print(a)..._如何将同一个大列表中的小列表合并成普通列表

错误: 找不到或无法加载主类问题总结-程序员宅基地

错误: 找不到或无法加载主类问题总结简单说明运行的是普通的java项目(单module),非maven项目该项目是用来学习算法用的,前一天好好的,今天再编译,就出现问题。提示:错误: 找不到或无法加载主类解决办法一般这种问题是编译这块出现了问题。1.你可以选择清空之前的编译文件,再重新编译。maven项目可以在工程的生命周期(lifecycle)选择clean,清空编译文件。然后重新编译或者install。关于maven工程的生命周期这块,可以自行度娘了解。2.查看你的工程编译输出目录。具

简单介绍一下Spring / java中Spring框架7大核心模块的作用,如何在面试中侃侃而谈?/ Spring体系常用项目一览_spring核心模块的作用面向切面除了实例化还有-程序员宅基地

合法程序媛 2017-10-23 09:35优效学院,名师执教,学习更优效,IT在线教育领导者。三人行必有我师,人生是需要不断学习的,在这里我们相遇就是缘分,欢迎大家加群----四六零五七零八二四----让我们共同进步!希望各位可以看完这篇文章,也欢迎大家在下面留言讨论,天冷了,也动动手指转发收藏一下,谢谢大家!Spring是一个开源的控制反转(Inversion of C_spring核心模块的作用面向切面除了实例化还有

oracle如何根据一个字段的结果判断另外一个字段?(CASE WHEN THEN ELSE END语句)_oracle then 判断使用改的字段-程序员宅基地

oracle如何根据一个字段的结果判断另外一个字段?(CASE WHEN THEN ELSE END语句)根据一个字段的选择,动态显示另一个字段的值如下:select t.PK_ID ,b.JGMC as DEPT_NAME ,a.XM ,a.XM as xmText ,a.focusman ,t.jyxxsj ,t.jyxxfs_oracle then 判断使用改的字段