码迷,mamicode.com
首页 > 编程语言 > 详细

剑指offer-面试题42-连续子数组的最大和-动态规划

时间:2019-12-04 22:22:39      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:iostream   set   int   最大   要求   name   using   cout   vector   

/*
题目;
 输入一个整形数组(可能有正数和负数),求数组中连续子数组(最少有一个元素)的最大和。
 要求时间复杂度为O(n)。 先输入数组的格式,再依次输入数组的值。
*/
/*
思路:
 f(i) = pData[i](i=0或f(i-1)<0),f(i-1)+pData[i](f(i-1)>0且i!=0)
*/
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<set>
#include<vector>
#include<limits.h>
using namespace std;
int main(){
    int num;
    cin>>num;
    int maxVal = INT_MIN;
    int sum = 0;
    for(int i = 0; i < num; i++){
        int val;
        cin>>val;
        sum += val;
        maxVal = max(sum,maxVal);
        sum = max(sum,0);
    }
    cout<< maxVal;
}

剑指offer-面试题42-连续子数组的最大和-动态规划

标签:iostream   set   int   最大   要求   name   using   cout   vector   

原文地址:https://www.cnblogs.com/buaaZhhx/p/11985626.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!