# Leetcode [No. 53] Maximum Subarray (MEDIUM) ## 題目 https://leetcode.com/problems/maximum-subarray/description/ ## 思路 + 這個解法應該是我想得到的解中最快的解了 + 就是去iterate每一個element後去記錄當前的最高sum跟連續sum + 接著隨時去更新maxSum 最後去return ```c++= class Solution { public: int maxSubArray(vector<int>& nums) { int prevSum = nums[0]; int maxSum = nums[0]; for(int i = 1 ; i < nums.size(); i++) { if(prevSum + nums[i] > nums[i]) { prevSum += nums[i]; } else { prevSum = nums[i]; } maxSum = max(prevSum, maxSum); // cout << maxSum << "\t"; } return maxSum; } }; ``` ### 解法分析 + time complexity: O(n) ### 執行結果  --- ## NeetCode150 Practice on 2025/06/21 + Easy Greedy ```c++= class Solution { public: int maxSubArray(vector<int>& nums) { int curSum = 0; int maxSum = INT_MIN; for (auto num: nums) { if (curSum < 0 && curSum < num) { curSum = num; } else { curSum += num; } maxSum = max(maxSum, curSum); } return maxSum; } }; ``` 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up