这道题可以从标准的动态规划(DP)推过来。 我们可以假设dp[i]表示以位置i为结尾的子数组的最大和是多少? 所以对于我们要求的答案就是max(dp[0], dp[1], ..., dp[n]) 在这n个数中找到一个最大值就是我们最后的答案。 而对于单独的dp[i],我们可以递推得到: dp[i] = max(dp[i-1] + nums[i], nums[i]) 意思是当前位置的i可以接上一个的答案,也可以另起炉灶从当前统计答案。 c++ python class Solution { public: int FindGreatestSumOfSubArray(vec...