
LeetCode121. 买卖股票的最佳时机
问题分析:我们需要找到一个买入点和一个卖出点,使得卖出点的股票价格尽可能高,而买入点的股票价格尽可能低。利润是卖出价格减去买入价格。 记录最低价格:在遍历数组时,记录到当前为止的最低价格。 计算利润:对于每个可能的卖出点,计算当前的利润,并跟踪最大利润。 时间复杂度:该算法的时间复杂度为O(n),因为只需遍历数组一次。空间复杂度为O(1),因为只使用了几个变量。 初始化:首先检查数组长度,如果长度小于等于1,直接返回0,因为无法进行交易。 遍历数组:从第二个元素开始遍历数组。对于每个元素,检查它是否是当前最低价格,如果是,则更新最低价格。 计算利润:计算当前元素与最低价格的差值,即为当前利润。如果当前利润大于已知的最大利润,则更新最大利润。 返回结果:遍历结束后,返回最大利润。
发布日期:2021-05-08 06:09:44
浏览次数:22
分类:精选文章
本文共 884 字,大约阅读时间需要 2 分钟。
为了解决这个问题,我们需要找到买入股票的最佳时机,以便在未来某一天卖出股票时获得最大利润。我们可以通过遍历股票价格数组,记录到当前为止的最低价格,然后计算每一步的利润来实现这一点。
方法思路
解决代码
public int maxProfit(int[] prices) { if (prices.length <= 1) { return 0; } int minInput = prices[0]; int maxProfit = 0; for (int i = 1; i < prices.length; i++) { if (prices[i] < minInput) { minInput = prices[i]; } int profit = prices[i] - minInput; if (profit > maxProfit) { maxProfit = profit; } } return maxProfit;}
代码解释
这个方法确保了在每一步都能找到最优的买入价格,从而最大化利润。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年03月30日 13时42分25秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
invalid byte sequence for encoding
2019-03-05
Highgo Database故障收集脚本
2019-03-05
failed to initialize the database
2019-03-05
invalid byte sequence for encoding
2019-03-05
银河麒麟系统配置apt网络源
2019-03-05
第七周 4.12-4.18
2019-03-05
程序设计入门14 结构体
2019-03-05
程序设计基础75 tips 广度搜索细节问题
2019-03-05
笨办法学python之数据类型
2019-03-05
笨办法学Python之将对象名的字符串类型,转化成相应对象
2019-03-05
ArduPilot源码极速下载手册(一文告别github慢速问题)
2019-03-05
聊一聊那些应该了解的大佬(飞控,人工智能方向)
2019-03-05
ArduPilot+mavros+gazebo+QGC联合仿真初体验
2019-03-05
px4调试bug--添加mavlink_log_info信息
2019-03-05
redis替换字符串命令
2019-03-05
redis向数组中添加值并查看数组长度
2019-03-05
python3基础梳理11python中模块和包
2019-03-05
JS编写一个函数,计算三个不同数字的大小,按从小到大顺序打印(穷举法)
2019-03-05
jQuery实现轮播图效果
2019-03-05
mybatis中like的注意
2019-03-05