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;
 }
};