【leetcode刷题】9

提示:

1 <= prices.length <= 105

0 <= prices[i] <= 104

Solution


又是一道动态规划的题

前i天的最大收益 = max{前i-1天的最大收益,第i天的价格-前i-1天中的最小价格}

  • 记录今天之前买入的最小值

  • 计算今天之前最小值买入,今天卖出的获利,也即今天卖出的最大获利

  • 比较每天的最大获利,取最大值即可

Code


所有leetcode代码已同步至github

欢迎star

class Solution {

public int maxProfit(int[] prices) {

if (prices.length <= 1) {

return 0;

}

int minPrices=prices[0];

int maxValue=0;

for (int i = 1; i <

prices.length ; i++) {

maxValue=Math.max(maxValue,prices[i]-minPrices);

minPrices=Math.min(minPrices,prices[i]);

}

return maxValue;

}

}

Result


复杂度分析

  • 时间复杂度:O(N)

🌈寻宝


⭐今天是坚持刷题更文的第9/100天

⭐各位的点赞、关注、收藏、评论、订阅就是一条创作的最大动力

⭐更多算法题欢迎关注专栏《leetcode》

为了回馈各位粉丝,礼尚往来,给大家准备了一条多年积累下来的优质资源,包括 学习视频、面试资料、珍藏电子书等

怎么领取请大家自己找,寻宝游戏现在开始。

找不到可以评论留言,一条就会注意到你。
如果还不行,请私信我。
在这里插入图片描述

-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NreWxpYmlhbw==,size_16,color_FFFFFF,t_70)

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值