給定乙個整型陣列,陣列中的陣列元素可能為正也可能為負值,求出該陣列中元素連續相加的最大值。也就是求出和值最大的子數列。
比如給定乙個陣列 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...