c_cpp 最大子序列和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 最大子序列和相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <algorithm>
using namespace std;

int N;
const int MAX_N = 1e5 + 5;
int A[MAX_N], dp[MAX_N];

int main() {
	cin >> N;
	for (int n = 0; n < N; n++) {
		cin >> A[n];
	}

	// boundary 
	dp[0] = A[0];
	
	// state trasition equation 
	for (int i = 1; i < N; i++) {
		dp[i] = max(A[i], dp[i - 1] + A[i]);
	}

	cout << *max_element(dp, dp + N) << endl;
	return 0;
}

/*
Sample Input:
6
-2 11 -4 13 -5 -2
Sample Output:
20 (11 + (-4) + 13 = 20)
*/

以上是关于c_cpp 最大子序列和的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 非连续子序列的最大总和

c_cpp 从正整数数组中找出子序列的最大总和,其中任意两个子序列彼此不相邻i

c_cpp 对于给定序列a1,a2,a3 ...... an,寻找它的某个连续子段,使得其和最大。如(-2,11,-4,13,-5,-2)最大子段是{ 11,-4,13}其和为20.下述算法的时间复杂

c_cpp 连续子数组的最大和的.cpp

c_cpp 最长的共同子序列

c_cpp 最长的子序列