Contents

53. 最大子数组和

Contents

https://leetcode.cn/problems/maximum-subarray/

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int ans = nums[0], cur = 0;
        for (int &x : nums) {
            cur = max(cur + x, x);
            ans = max(ans, cur);
        }
        return ans;
    }
};
1
2
3
4
5
6
7
class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        ans, cur = nums[0], 0
        for x in nums:
            cur = max(cur + x, x)
            ans = max(ans, cur)
        return ans
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
class Solution {
    fun maxSubArray(nums: IntArray): Int {
        var (ans, cur) = nums[0] to 0
        for (x in nums) {
            cur = maxOf(cur + x, x)
            ans = maxOf(ans, cur)
        }
        return ans
    }
}