问题描述
小明正在利用股票的波动程度来研究股票。小明拿到了一只股票每天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少。
输入格式
输入的第一行包含了一个整数n,表示小明拿到的收盘价格的连续天数。
第二行包含n个正整数,依次表示每天的收盘价格。
输出格式
输出一个整数,表示这只股票这n天中的最大波动值。
样例输入
6
2 5 5 7 3 5
样例输出
4
样例说明
第四天和第五天之间的波动最大,波动值为|3-7|=4。
评测用例规模与约定
对于所有评测用例,2 ≤ n ≤ 1000。股票每一天的价格为1到10000之间的整数。
- Java实现
import java.util.Scanner;
public class Main {
static Scanner sc;
static int n;
static int a[];
static int aver=0;
public static void main(String[] args) {
sc=new Scanner(System.in);
n=sc.nextInt();
a=new int[n];
for(int i=0;i<n;i++){
a[i]=sc.nextInt();
}
aver=Math.abs(a[0]-a[1]);
for(int i=0;i<n-1;i++){
if(Math.abs(a[i]-a[i+1])>aver){
aver=Math.abs(a[i]-a[i+1]);
}
else{
aver=aver;
}
}
System.out.println(aver);
}
}
- Python实现
n = int(input())
m = [0]*n
s = input().split()
for i in range(n):
m[i] = int(s[i])
m_minus = []
for i in range(1,n):
value = abs(m[i]-m[i-1])
m_minus.append(value)
print(max(m_minus))
---------------------
原文:https://blog.youkuaiyun.com/qq_36851515/article/details/83239981
- C++实现
#include<stdio.h>
int main()
{
int n,a[1005],Maxprice=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(i>0)
{
int test=a[i]-a[i-1];
if(test<0)
test=0-test;
if(test>Maxprice)
Maxprice=test;
}
}
printf("%d",Maxprice);
return 0;
}
---------------------
原文:https://blog.youkuaiyun.com/Gloming__zxy/article/details/84589009