#include using namespace std; // O(N) time and O(1) Space int maxSubArray(vector& nums) { // INT_MIN is negative infinity int maxSoFar = INT_MIN; int maxEndingHere = 0; for (int i = 0; i < nums.size(); i++) { maxEndingHere += nums[i]; maxSoFar = max(maxSoFar, maxEndingHere); maxEndingHere = max(maxEndingHere, 0); } return maxSoFar; } // Naive approach O(N^2) time and O(1) Space int naive(vector& nums){ int sum=INT_MIN; for(int i = 0; i arr ={-2,1,-3,4,-1,2,1,-5,4}; cout<