题目


解答
class Solution(object):def maxSubArray(self, nums):""":type nums: List[int]:rtype: int"""len_nums = len(nums)result = -1e5left_fit, right_fit = 0, len_nums-1if len_nums == 1:return nums[0]sum_left, sum_right = 0, 0while right_fit - left_fit >= 1:sum_left += nums[left_fit]sum_right += nums[right_fit]result = max(result, sum_left, sum_right)if sum_left <= 0:sum_left = 0if sum_right <= 0:sum_right = 0left_fit += 1right_fit -= 1if right_fit < left_fit:if sum_left > 0 and sum_right > 0:result = max(result, sum_left + sum_right)elif left_fit == right_fit:if sum_left > 0 and sum_right > 0:result = max(result, sum_left + sum_right + nums[left_fit])elif sum_left > 0:result = max(result, sum_left + nums[left_fit])elif sum_right > 0:result = max(result, sum_right + nums[right_fit])else:result = max(result, nums[left_fit])return result