記憶體限制:64mb 時間限制:5000ms special judge: no
accepted:12 submit:48
給定一整型數列,找出連續非空子串,使得該子串行的和最大,其中,1<=x<=y<=n。
第一行是乙個整數n(n<=10)表示測試資料的組數)每組測試資料的第一行是乙個整數n表示序列中共有n個整數,隨後的一行裡有n個整數i(-100=對於每組測試資料輸出和最大的連續子串的和。
複製
151 2 -1 3 -2
5
輸入資料很多,推薦使用scanf進行輸入
分析:
只有對正數才進行累加,但每一步都要判斷該值與原先最大值間的最大值
步驟:
①、判斷第i-1個數如果大於0,就類加上第i個數(保證第i位通過前驅、或本身能夠達到最大值)
②、判斷原先my_max 與 現在第i位數字的大小,保留大的數在my_max中
核心**:
1 scanf("%d", &a[0
]);2
for(int i = 1; i < n; ++i)
3
c/c++**實現(ac):
#include #include#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 1000*1010
;int
a[maxn];
intmain()
printf(
"%d\n
", my_max);
}return0;
}
nyoj 44 子串和 最大子串和
常見的做法有 列舉區間 動態規劃等。昨天突然想到了乙個o n 的演算法,拿來分享給諸位 我們從後向前看這串數字 5 6 2 3 5 發現倒數第一位就是負數 5 毫無疑問,這個負數肯定不在我的最大子串和裡,因為我們捨去它並不會影響我們鏈結其它有價值的數,所以我們將它拋棄。繼續考察,這時我們遇到了3,我...
NYOJ 44 最大連續子串行和
時間限制 5000 ms 記憶體限制 65535 kb 難度 3 描述給定一整型數列,找出連續非空子串,使得該子串行的和最大,其中,1 x y n。輸入第一行是乙個整數n n 10 表示測試資料的組數 每組測試資料的第一行是乙個整數n表示序列中共有n個整數,隨後的一行裡有n個整數i 100 輸出 對...
計蒜客 最大子陣列 NYOJ題目44 子串和
在乙個陣列中找出和最大的連續幾個數。至少包含乙個數 例如 陣列a 2,1,3,4,1,2,1,5,4 則連續的子串行 4,1,2,1 有最大的和6.輸入格式 第一行輸入乙個不超過1000的整數n。第二行輸入n個整數a i 輸出格式 第一行輸出乙個整數,表示最大的和。樣例輸入3 1 1 2 樣例輸出2...