首页 > 编程语言 > 详细

b_lc_任意子数组和的绝对值的最大值(记录最大最小值)

时间:2021-02-15 23:28:29      阅读:26      评论:0      收藏:0      [点我收藏+]

请你找出 nums 中 和的绝对值 最大的任意子数组(可能为空),并返回该 最大值。

思路:mi记录最小值,mx记录最大值;

  • x>0,答案的子数组mi一定会就此断开
  • x<0,答案的子数组mx一定会就此断开
  • 所以无论x怎样,mi、mx都记录了所有可能,不必关心x的正负,只需考虑mi、mx的正负即可
class Solution:
    def maxAbsoluteSum(self, A: List[int]) -> int:
        mi, mx, ans = 0, 0, -float(‘inf‘)
        for x in A:
            if mi >= 0: mi = x
            else: mi += x
            if mx <= 0: mx = x
            else: mx += x
            ans = max(ans, mx, abs(mi))
        return ans

b_lc_任意子数组和的绝对值的最大值(记录最大最小值)

原文:https://www.cnblogs.com/wdt1/p/14404403.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!