Java实现:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?
时间: 2024-06-04 19:13:11 浏览: 6
可以使用动态规划算法来解决该问题,具体实现如下:
int maxProfit(int prices[], int n) {
int minPrice = INT_MAX; // 初始化最小价格
int maxProfit = 0; // 初始化最大利润
// 遍历价格数组
for (int i = 0; i < n; i++) {
if (prices[i] < minPrice) { // 如果当前价格小于最小价格
minPrice = prices[i]; // 更新最小价格
} else if (prices[i] - minPrice > maxProfit) { // 如果当前利润大于最大利润
maxProfit = prices[i] - minPrice; // 更新最大利润
}
}
return maxProfit; // 返回最大利润
}
如果数组中没有价格波动,即股票价格一直是递增的,那么最大利润为0。如果数组中只有一个价格,那么最大利润也为0。如果数组中有多个价格,那么最大利润就是在数组中寻找最小价格和最大利润的差值。