統計連續子數列的最值

2021-07-03 09:09:19 字數 715 閱讀 7647

給定乙個整型陣列,陣列中的陣列元素可能為正也可能為負值,求出該陣列中元素連續相加的最大值。也就是求出和值最大的子數列。

比如給定乙個陣列 a = ,這個很顯然,

最大的和值為a+a+a+a+a = 3+8+ -7+9+4=17 的值。

我想了最笨的方法:

就是把每個連續的子串行組合找出來,然後求出和值,然後挑出最大的就可以了。

我們可以用下圖演示一下:

下面是一段簡單測試**:

#includeint findsub(int a,int

size);

void print(int a,int

size);

int main()

; print(a,8);

int max = findsub(a,8);

printf("maxsub: %d\n",max);

return0;}

void print( int a,int

size)//陣列列印

printf("\n");

}int findsub(int a,int

size)

}return

max;//返回max值

}

子數列連續和

時間限制 1 sec 記憶體限制 128 mb 提交 25 解決 16 提交 狀態 討論版 命題人 admin 題目描述 給定n個數列,規定有兩種操作,一是修改某個元素,二是求子數列 a,b 的連續和。數列的元素個數最多10萬個,詢問操作最多10萬次。輸入第一行2個整數n,m n表示輸入n個數,m表...

最長連續等差子數列

描述 給定乙個長度為n的整數數列,你需要在其中找到最長連續子數列的長度,並滿足這個子數列是等差的。注意公差小於或等於0的情況也是允許的。輸入 第一行為測試資料的組數t 1 t 100 請注意,任意兩組測試資料之間是相互獨立的。每組資料報含兩行 第一行為乙個整數n 1 n 100 表示給定數列長度。第...

最大連續子數列和

題目分析 當我們從前向後遍歷陣列時,對於陣列中每乙個整數,它只有兩種選擇 1 加入到之前的subarray 2 自己另起乙個subarray。那什麼時候會出現這兩種情況呢?如果之前的subarray的總體和大於0的話,我們認為其對後續的結果是有貢獻的。這種情況下我們選擇 將其加入之前的subarra...