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

连续子数组最大和

http://www.nowcoder.com/practice/1718131e719746e9a56fb29c40cc8f95

#include <algorithm>
#include <iostream>
#include <vector>

int main(int argc, char *argv[]) {
  int size;
  
  std::cin >> size;
  
  std::vector<int> num(size);
  
  for (int i = 0; i < size; i++) {
    std::cin >> num[i];
  }
  
  int max = num[0];
  // pre是最大前n项之和
  int pre = num[0];
  
  
  for (int i = 1; i< size; i++) {
    // 找出一个子序列最大和
    pre = std::max(pre + num[i], num[i]);
    // 子序列最大和之间的比较
    max = std::max(pre, max);
  }
  
  std::cout << max << std::endl;
  
  return 0;
}
全部评论

相关推荐

许愿求offer:要有钩子,项目描述里必须有一两个让面试官忍不住想问的技术点
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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