qcode
  • 创作工场专业版,一问多答!更智能、更完整、更原创
  • 这是一个超强内容创作平台,它会写文章、做设计、绘图、敲代码,有问必答!
🔥点击使用-免登录深度版🔥

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

时间2023-08-11 22:05:33 提问来自 黑龙江省哈尔滨市 的网友 分类创作 浏览233
可以使用动态规划的方法来解决这个问题。假设股票价格数组为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是股票价格数组的长度。

不满意?免费深度重写!

免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。

上一篇 巴西木叶子上面出现白斑是什么 下一篇 坐在火车上能写一首七言绝句吗