题目描述
实现一个算法寻找最大化股票交易利润的策略。介绍如下:
- 股票价格每天都在变化,以数组的索引表示交易日,以数组的元素表示每天的股票价格。
- 可以通过买入和卖出获得利润。一天只能进行一次买入或卖出操作,一次买入加卖出操作称为一次交易次数。
- 你只能交易一次,求使得利润最大的交易策略。
输入描述
第一行为数字 NN,表示共有 NN 天。
第二行为 NN 个数字 A_iAi,表示每天的股票价格。
其中,1 \leq N, A_i \leq 10^41≤N,Ai≤104。
输出描述
输出一行,为交易一次的最大利润(有可能利润为负)。
输入输出样例
示例
输入
8
2 5 6 1 4 3 1 3
输出
4
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
代码
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
int N = scan.nextInt();
int[] arr = new int[N];
int max=-100000;
for (int i = 0; i < N; i++) {
arr[i]=scan.nextInt();
}
for (int i = 0; i < N-1; i++) {
for (int j = i+1; j < N; j++) {
max = arr[j]-arr[i]>max?arr[j]-arr[i]:max;
}
}
System.out.println(max);
scan.close();
}
}