给定一个正整数数组,它的第 i 个元素是比特币第 i 天的价格。
如果你最多只允许完成一笔交易(即买入和卖出一次),设计一个算法来计算你所能获取的最大利润。
注意你不能在买入比特币前卖出。
AC代码:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] string = sc.nextLine().split(" ");
if(string.length < 2) {
System.out.println(0);
return ;
}
int[] num = new int[string.length];
for(int i = 0;i < num.length;i++) {
num[i] = Integer.parseInt(string[i]);
}
int[] num1 = new int[num.length - 1];
for(int i = 0;i < num1.length;i++) {
num1[i] = num[i + 1] - num[i];
}
int max = 0;
int sum = 0;
for(int i = 0; i < num1.length;i++) {
sum += num1[i];
if(sum < 0) {
sum = 0;
}
max = Math.max(sum, max);
}
System.out.println(max);
}
}