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

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

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

动态规划直接求解(C语言):
不难得到方程:最大利润Maxprofit=max(Maxprofit(前一天的最大利润),prices[i]-min(此前的最小值))
求解步骤如下:
1.遍历数组,并保存最小值(动态更新)
2.比较前i天的利润,求最大值
3.输出最大利润
此算法时间复杂度=O(n),空间复杂度=O(1)。
int maxProfit(int* prices, int pricesLen ) {
    int i=0,j=0,profit=0,min=prices[0],Maxprofit=0;
    for(i=1;i<pricesLen;i++){
    //遍历过程中记录数组最小值
        if(min>prices[i]){
            min=prices[i];
        }
    //最大利润Maxprofit=max(Maxprofit(前一天的最大利润),prices[i]-min(此前的最小值))
        profit=prices[i]-min;
        if(Maxprofit<profit){
            Maxprofit=profit;
        }
    }
    return Maxprofit;
}


#华为##笔试题型##算法工程师##字节跳动##阿里巴巴#
全部评论

相关推荐

优秀的大熊猫在okr...:多益:此贼,必有同谋,按律,该当连坐!
你不能接受的企业文化有哪...
点赞 评论 收藏
分享
2025-12-15 14:25
云南大学 Java
lei22:入职可能会看学信网,最好别伪装,这个简历找实习肯定是够的,肯定会有收 28 届实习生的公司的,多投就行
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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