可以使用动态规划的方法来解决这个问题。假设股票价格数组为prices,长度为n。
首先定义两个变量:minPrice表示当前遍历到的最低股票价格,maxProfit表示当前遍历到的最大利润。
然后遍历整个股票价格数组,对于每个价格,更新minPrice为当前价格和minPrice中的较小值,更新maxProfit为当前价格与minPrice的差值和maxProfit中的较大值。
最后返回maxProfit即为买卖该股票一次可能获得的最大利润。
以下是Java代码实现:
```java
public int maxProfit(int[] prices) {
int n = prices.length;
if (n == 0) {
return 0;
}
int minPrice = prices[0];
int maxProfit = 0;
for (int i = 1; i < n; i++) {
minPrice = Math.min(minPrice, prices[i]);
maxProfit = Math.max(maxProfit, prices[i] - minPrice);
}
return maxProfit;
}
```
这个算法的时间复杂度是O(n),其中n是股票价格数组的长度。
首先定义两个变量:minPrice表示当前遍历到的最低股票价格,maxProfit表示当前遍历到的最大利润。
然后遍历整个股票价格数组,对于每个价格,更新minPrice为当前价格和minPrice中的较小值,更新maxProfit为当前价格与minPrice的差值和maxProfit中的较大值。
最后返回maxProfit即为买卖该股票一次可能获得的最大利润。
以下是Java代码实现:
```java
public int maxProfit(int[] prices) {
int n = prices.length;
if (n == 0) {
return 0;
}
int minPrice = prices[0];
int maxProfit = 0;
for (int i = 1; i < n; i++) {
minPrice = Math.min(minPrice, prices[i]);
maxProfit = Math.max(maxProfit, prices[i] - minPrice);
}
return maxProfit;
}
```
这个算法的时间复杂度是O(n),其中n是股票价格数组的长度。
下一篇:表达对学校领导关怀的语句