题解 | #买卖股票的最好时机(一)#

买卖股票的最好时机(一)

https://www.nowcoder.com/practice/64b4262d4e6d4f6181cd45446a5821ec

2022.0818算法第36题买卖股票的最好时机(一)
这道题标注是简单,但是我真的没想出来,走弯路了
最优化的方式想不出来,需要先写复杂一点的。
1、状态矩阵
刚开始想的是第i天卖出的最大收益,但是后面做不出来了。
看了解析记录的是当前最小的股票价格,最大收益是计算得到的。
vector<int> dp(prices.size());
2、初始值
这个还是比较简单的
dp[0]=prices[0];
int max_p=0;
3、状态转移方程
记录之前的最小值,这样每次只需要和当前值进行比较就行,空间换时间。
for(int i=1;i<prices.size();i++){
    if(prices[i]<dp[i-1]){
        dp[i]=prices[i];
    }
    else
        dp[i]=dp[i-1];
    max_p=max(max_p,prices[i]-dp[i]);
}
以上代码可以进行优化,最小值可以使用一个变量进行存储,没必要使用数组。我觉着能想到上面那些是最重要的。



#算法题#
全部评论

相关推荐

07-01 17:14
中北大学 Java
兄弟们是真是假
牛客46374834...:我在boss上投java岗从来没成功过
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 17:13
想去,但是听说加班强度实在难崩,所以拒绝了,现在有点心梗对面hr感觉也是实习生,打电话的时候怪紧张的,但是感觉人很好嘞
水中水之下水道的鼠鼠:哥们这不先去体验一下,不行再跑呗,大不了混个实习经历(有更好的转正offer就当我没说)
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务