## Problem Statement

Given an integer array `nums`

, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.

**Example:**

Input:[-2,1,-3,4,-1,2,1,-5,4],Output:6Explanation:[4,-1,2,1] has the largest sum = 6.

**Follow up:**

If you have figured out the O(*n*) solution, try coding another solution using the divide and conquer approach, which is more subtle.

**Solution:**

class Solution:
def maxSubArray(self, nums: List[int]) -> int:
if not nums: return nums
global_max = current_max = nums[0]
for i in range(1, len(nums)):
current_max = max(nums[i], current_max+nums[i])
if current_max > global_max:
global_max = current_max
return global_max