53. Maximum Subarray

gegeben: gesucht: falls alle

anders formuliert

The Naive Approach

for for

Anzahl Addition:

Reduce Duplicate Work

Using Prefix sum

Divide and Conquer

divide and conquer

Link to original

: falls sonst

Another approach

Master Theorem

NOTE

Example

Link to original

Dynamic Programming

class Solution {
public:
  int maxSubArray(vector<int> &nums) {
    int n = nums.size();
    int currentsum = 0;
    int maxs = INT_MIN;
    int maxsum = INT_MIN;
    for (int i = 0; i < n; i++) {
      currentsum += nums[i];
      maxs = max(maxs, currentsum);
      if (currentsum < 0) {
        maxsum = max(maxsum, maxs);
        currentsum = 0;
        maxs = INT_MIN;
      }
    }
    maxsum = max(maxsum, maxs);
    return maxsum;
  }
};