https://leetcode-cn.com/problems/maximum-subarray/description/

题目描述

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123
输出: 321
示例 2:

输入: -123
输出: -321
示例 3:

输入: 120
输出: 21
注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

代码实现

方法一:

class Solution(object):
    def maxSubArray(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if not nums:
            return 0
        current = nums[0]
        m = current
        for i in range(1, len(nums)):
            if current < 0:
                current = 0
            current += nums[i]
            m = max(current, m)
        return m

方法二:

class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        n = len(nums)
        curr_sum = max_sum = nums[0]
        for i in range(1, n):
            curr_sum = max(nums[i], curr_sum+nums[i])
            max_sum = max(max_sum, curr_sum)
        return max_sum

相关文章:

  • 2021-10-30
  • 2021-07-29
  • 2021-10-08
  • 2022-01-22
  • 2021-08-07
  • 2021-11-08
猜你喜欢
  • 2021-04-14
  • 2021-11-16
  • 2021-10-18
  • 2021-06-19
  • 2021-08-09
  • 2021-12-04
  • 2021-06-17
相关资源
相似解决方案