买卖股票的最佳时机
题目
这是一道简单题,这道题很明显是可以使用动态规划中的特殊思路:贪心算法。也是求最大。
思路:
-
先考虑初始返回值
result
,肯定是0,因为自己减自己。 -
遍历价格列表
prices
并执行两步:- 更新前
i
天的最低价格,即最低买入价格minPrice
; - 更新前
i
天的最高利润result
,即选择result
和prices[i]-minPrice
中的最大值 ;
- 更新前
最后直接返回result。
这个就相当于在一次数组遍历中,一直计算第i个被买入能得到的最大利润,然后一直贪心的选择最大值。
代码:
class Solution { public int maxProfit(int[] prices) { //先初始化一个BP数值为0,遍历的时候每次都比较是不是最小值,然后每次更新最大的利润。 int result = 0; int minCost = Integer.MAX_VALUE; for(int i=0;i<prices.length;i++){ minCost = Math.min(minCost,prices[i]); result = Math.max(result,prices[i]-minCost); } return result; } }
合集:
leetcode
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix