1. 程式人生 > >最大波動 201609-1

最大波動 201609-1

問題描述  小明正在利用股票的波動程度來研究股票。小明拿到了一隻股票每天收盤時的價格,他想知道,這隻股票連續幾天的最大波動值是多少,即在這幾天中某天收盤價格與前一天收盤價格之差的絕對值最大是多少。輸入格式  輸入的第一行包含了一個整數n,表示小明拿到的收盤價格的連續天數。
  第二行包含n個正整數,依次表示每天的收盤價格。輸出格式  輸出一個整數,表示這隻股票這n天中的最大波動值。樣例輸入6
2 5 5 7 3 5樣例輸出4樣例說明  第四天和第五天之間的波動最大,波動值為|3-7|=4。評測用例規模與約定

  對於所有評測用例,2 ≤ n ≤ 1000。股票每一天的價格為1到10000之間的整數。

參考程式碼:

#include <iostream>
using namespace std;
int  main(){
int result=0;
int n;
cin >> n;
int *p = new int[n];
for (int i = 0; i < n;i++)
{
cin >> p[i];
}
//n天內最大波動
/*for (int i = 0; i < n-1;i++)
{
for (int j = i+1; j < n;j++)
{
if (((p[i] - p[j])>0) && ((p[i] - p[j])>result)){
result = p[i] - p[j];
}
else if (((p[i] - p[j])<0) && ((p[j] - p[i])>result))
{
result = p[j] - p[i];
}
}
}*/
//相鄰天的波動最大值
for (int i = 0; i < n-1;i++)
{
if (((p[i] - p[i+1])>0) && ((p[i] - p[i+1]) > result)){
result = p[i] - p[i + 1];
}
else if (((p[i] - p[i + 1])<0) && ((p[i + 1] - p[i])>result))
{
result = p[i + 1] - p[i];
}
}
cout << result;

        return 0;
}

提交結果:

程式碼長度程式語言評測結果得分時間使用空間使用
425BC++正確1000ms508.0KB