LeetCode 53. Maximum Subarray

    xiaoxiao2021-12-14  35

    1. 题目描述

    Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

    For example, given the array [-2,1,-3,4,-1,2,1,-5,4], the contiguous subarray [4,-1,2,1] has the largest sum = 6.

    2. 解题思路

    动态规划,计算 以nums[i]结尾的最大子串和sum[i],然后数组中最大的值就是结果。 迭代方程: if sum[i-1]>0: sum[i]=nums[i]+sum[i-1] else: sum[i]=nums[i]

    3. 实现代码

    class Solution { public: int maxSubArray(vector<int>& nums) { int n=nums.size(); int sum=0; int max_sum=INT_MIN; for(int i=0;i<n;i++){ if(sum>=0){ sum+=nums[i]; }else{ sum=nums[i]; } if(sum>max_sum){ max_sum=sum; } } return max_sum; } };
    转载请注明原文地址: https://ju.6miu.com/read-963147.html

    最新回复(0)