剑指offer-面试题42-连续子数组的最大和-动态规划
Posted buaazhhx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer-面试题42-连续子数组的最大和-动态规划相关的知识,希望对你有一定的参考价值。
/*
题目;
输入一个整形数组(可能有正数和负数),求数组中连续子数组(最少有一个元素)的最大和。
要求时间复杂度为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-连续子数组的最大和-动态规划的主要内容,如果未能解决你的问题,请参考以下文章
剑指 Offer 53 - I. 在排序数组中查找数字 I / 剑指 Offer 42. 连续子数组的最大和(线段树基础)/152. 乘积最大子数组 / 面试题 10.02. 变位词组