请写Java代码。【题目描述】股票交易游戏:给出一个数组,代表某只股票每天的收市价,按时间顺序依次排列。我们选取前面的一天的收市价作为买入价,然后选取买入之后某天的收市价作为卖出价,卖出价减去买入价即为你的得分(股票收益)请你设计一个程序,在这个股票游戏中只进行一次买卖(一次买入+一次卖出),使得获得的收益最大【输入格式】:从键盘输入一个正整数n,表示数组的长度接下来一行输入n个整数,以空格隔开,请将这n个数保存到一个长度为n的数组中【输出格式】:输出一个整数,表示在这个股票交易游戏中获得的最大收益
时间: 2023-04-06 14:04:33 浏览: 323
以下是Java代码:
import java.util.Scanner;
public class StockTradingGame {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] prices = new int[n];
for (int i = 0; i < n; i++) {
prices[i] = scanner.nextInt();
}
int maxProfit = 0;
int minPrice = Integer.MAX_VALUE;
for (int i = 0; i < n; i++) {
if (prices[i] < minPrice) {
minPrice = prices[i];
} else if (prices[i] - minPrice > maxProfit) {
maxProfit = prices[i] - minPrice;
}
}
System.out.println(maxProfit);
}
}
解释:这是一个简单的股票交易游戏,我们需要在给定的股票价格数组中找到一次买卖的最大收益。我们可以使用一个变量来记录当前最小的股票价格,然后遍历整个数组,如果当前价格比最小价格小,就更新最小价格,否则就计算当前价格与最小价格的差值,如果这个差值比之前的最大收益还要大,就更新最大收益。最后输出最大收益即可。
阅读全文