题解 | #最大差值#

最大差值

https://www.nowcoder.com/practice/a01abbdc52ba4d5f8777fb5dae91b204

开始想到动态规划,但是题目要求差值是前一个减后一个,第i个值最小时,不可作为减数。
所以 前i个数最大差值为 max(A[i]-min_,max_),每次更新A[:i]最小值min_;

class Solution:
    def getDis(self , A: list[int], n: int) -> int:
        # write code here
        # if n <=1:
        #     return 0
        # dp=[0 for i in range(n)]
        # for i in range(1,n):
        #     x = A[i]
        #     max_ = max(A[:i])
        #     min_ = min(A[:i])
        #     if x < min_ :
        #         dp[i] = dp[i-1] +(min_ - x)
        #     elif x > max_ :
        #         dp[i] = dp[i-1] + (x-max_)
        #     else:
        #         dp[i] = dp[i-1]
        # return dp[n-1]

        min_ = A[0]
        max_ = 0
        for i in range(n):
            min_ = min(min_,A[i])
            max_ = max(max_,A[i] - min_)
        return max_

#我的实习求职记录#
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-20 14:55
点赞 评论 收藏
分享
喜欢飞来飞去的雪碧在刷代码:可以试一试字节
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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