题解 | #连续子数组的最大和#

连续子数组的最大和

https://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484?tpId=295&tqId=23259&ru=%2Fpractice%2F5164f38b67f846fb8699e9352695cd2f&qru=%2Fta%2Fformat-top101%2Fquestion-ranking&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D295

渐渐对动态规划有感觉了

class Solution {
public:
    int FindGreatestSumOfSubArray(vector<int> array) {
      //  dp[i] 表示结尾元素为i下标的子数组的和的最大值
      //  最后一个不一定就是和最大值,因为子数组不一定取到最后一个元素
      //  每次取子数组时,记录下最大值
      int res = -200;
      std::vector<int> dp(array.size(), 0);
      
      //  假设每个元素都为子数组时和最大
      for (int i = 0; i < array.size(); ++i) {
        dp[i] = array[i];
      }
      
      for (int i = 0; i < array.size(); ++i) {
        dp[i] = std::max(dp[i], dp[i - 1] + array[i]);
        //  以某下标i结尾的子数组,其和达到最大,记录下来
        res = std::max(res, dp[i]);
      }
      
      return res;
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
03-20 12:46
瘦嘟嘟右卫门:百度文库网盘的暑期也没约面吗
点赞 评论 收藏
分享
02-26 13:56
已编辑
重庆财经学院 Java
King987:你有实习经历,但是写的也太简单了,这肯定是不行的,你主要要包装实习经历这一块,看我的作品,你自己包装一下吧,或者发我,我给你出一期作品
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务