給定乙個陣列a[0,…,n-1],求其最大子陣列(長度》=1)和
第一行乙個整數n(1<=n<=5000),然後依次輸入n個整數(每個整數範圍[-5000, 5000])
輸出乙個整數表示最大子陣列和
5 1 -1 1 1 -1
動態記憶體分配,陣列
效率還行,能過選做題。
#include "stdafx.h"
#include
using namespace std;
int maxsum(int a,int size)
//考慮下全為負的情況
if (sum == 0)
}return
sum;
}int main()
//除錯語句,請忽略
/*for(int i=0;iint
sum=0;
sum = maxsum(p, n);
cout << sum;
deletep;
return
0;}
最大子陣列和
問題描述 給定乙個整數陣列a 0 n 求陣列a的子陣列,使其元素和為最大。問題分析 方法一 可以用普通的方法列舉所有的子陣列,然後求出最大的子陣列和,時間複雜度為o n n 方法二 問題描述符合動態規劃最優子結構的要求。設b i 表示以a i 結尾的子陣列的最大子段和,即 b i max,其中0 j...
最大子陣列和
給定乙個陣列 求出陣列的最大子陣列和 其中包含正,負 和0 很簡單把每個子陣列的和求出來話不多說看 方法1暴力求解法 把所有的子陣列都求解出來o n2 public static intgetmaxsubarr int arr return res 第二種方法 dp求解 很簡單理解加上當前的數arr...
最大子陣列和
使用動態規劃 f i 以array i 為末尾元素的子陣列的和的最大值,子陣列的元素的相對位置不變 f i max f i 1 array i array i res 所有子陣列的和的最大值 res max res,f i 如陣列 6,3,2,7,15,1,2,2 初始狀態 f 0 6 res 6 ...