# 53. Maximum Subarray Difficulty: Easy ## Solution ```cpp= /** *** Author: R-CO *** E-mail: daniel1820kobe@gmail.com *** Date: 2020-09-30 **/ #include <algorithm> #include <climits> #include <cstdlib> #include <iostream> using std::cout; using std::endl; #include <vector> using std::vector; struct TestCaseStruct { vector<int> input; int output; }; class Solution { public: int maxSubArray(vector<int> &nums) { int max_sum = INT_MIN; int sum = 0; for (const auto &num : nums) { sum += num; max_sum = std::max(max_sum, sum); if (sum < 0) { sum = 0; } } return max_sum; } }; int main(int argc, char *argv[]) { vector<TestCaseStruct> test_cases = {{{-2, 1, -3, 4, -1, 2, 1, -5, 4}, 6}, {{1}, 1}, {{0}, 0}, {{-1}, -1}, {{-2147483647}, -2147483647}}; int case_index = 0; Solution solution; for (auto &test_case : test_cases) { if (solution.maxSubArray(test_case.input) == test_case.output) { cout << "test_case[" << case_index << "] is pass." << endl; } else { cout << "test_case[" << case_index << "] is fail." << endl; } ++case_index; } return EXIT_SUCCESS; } ``` ## Result Runtime: 12 ms, faster than 78.72% of C++ online submissions for Maximum Subarray. Memory Usage: 13.4 MB, less than 17.60% of C++ online submissions for Maximum Subarray. ###### tags: `LeetCode-Easy` `C++`