买卖股票的最佳时机

题目

image

这是一道简单题,这道题很明显是可以使用动态规划中的特殊思路:贪心算法。也是求最大。

思路:

  • 先考虑初始返回值result,肯定是0,因为自己减自己。

  • 遍历价格列表 prices 并执行两步:

    • 更新前i天的最低价格,即最低买入价格minPrice
    • 更新前i天的最高利润 result,即选择resultprices[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;
}
}
posted on   一个痴迷于技术的码农  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示