Given an integer array `nums`, find the subarray with the largest sum, and return its sum. **Example 1:** 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`. **Example 2:** Input: `nums = [1]` Output: `1` **Example 3:** Input: `nums = [5,4,-1,7,8]` Output: `23`
Kadane's Algorithm
For each element, we decide whether to start a new subarray beginning at that element, or extend the previous subarray. This is a local choice that leads to a global maximum.