#+ANKI_DECK: study_deck_02 * TODO 0053. Maximum Subarray :medium: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*0053. Maximum Subarray][0053. Maximum Subarray]] :END: Given an integer array ~nums~, find the subarray with the largest sum, and return /its sum/. *Example 1:* #+begin_src Input: nums = [-2,1,-3,4,-1,2,1,-5,4] Output: 6 Explanation: The subarray [4,-1,2,1] has the largest sum 6. #+end_src *Example 2:* #+begin_src Input: nums = [1] Output: 1 Explanation: The subarray [1] has the largest sum 1. #+end_src *Example 3:* #+begin_src Input: nums = [5,4,-1,7,8] Output: 23 Explanation: The subarray [5,4,-1,7,8] has the largest sum 23. #+end_src *Constraints:* - ~1 <= nums.length <= 10^{5}~ - ~-10^{4} <= nums[i] <= 10^{4}~ *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. ** TODO Approach Write your approach here. ** TODO Python #+begin_src python class Solution: def maxSubArray(self, nums: List[int]) -> int: #+end_src ** TODO C++ #+begin_src cpp class Solution { public: int maxSubArray(vector& nums) { } }; #+end_src