###### tags: `LeetCode`,`Java`,`Medium` # Medium-53. Maximum Subarray ### **題目連結:** [**Maximum Subarray**](https://leetcode.com/problems/maximum-subarray/description/) ### **解題方向** * 採用 Kadane 算法,遍歷整個陣列 nums,對於每個元素,累計目前的和 curr。 * 若 curr 小於當前元素 nums[i],則重新開始累計,即 curr=nums[i]。 * 然後比較目前的最大子陣列和 res 和當前的和 curr,更新 res。 ### **完整程式碼** ```java= class Solution { public int maxSubArray(int[] nums) { int res=nums[0]; int curr=nums[0]; for(int i=1;i<nums.length;i++){ curr+=nums[i]; if(curr<nums[i])curr=nums[i]; if(res<curr)res=curr; } return res; } } ```