AI文库-您身边的智能助手,如没有想要的内容请与本站万能的AI助手联系。

用java写一个算法:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?

来自 黑龙江省哈尔滨市 的网友 时间: 热度:22°C 加入收藏 我要投稿 点赞(0)
可以使用动态规划的方法来解决这个问题。假设股票价格数组为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是股票价格数组的长度。
221381
领取福利

微信扫码领取福利

微信扫码分享

阅读并接受《用户协议》
注:各登录账户无关联!请仅用一种方式登录。


用户注册协议

一、 本网站运用开源的网站程序平台,通过国际互联网络等手段为会员或游客提供程序代码或者文章信息等服务。本网站有权在必要时修改服务条款,服务条款一旦发生变动,将会在重要页面上提示修改内容或通过其他形式告知会员。如果会员不同意所改动的内容,可以主动取消获得的网络服务。如果会员继续享用网络服务,则视为接受服务条款的变动。网站保留随时修改或中断服务而不需知照会员的权利。本站行使修改或中断服务的权利,不需对会员或第三方负责。

关闭