求連續(xù)子數(shù)組的最大和C語言 算法:給定一個數(shù)組,找出最長連續(xù)子數(shù)組和為0的子序列?
算法:給定一個數(shù)組,找出最長連續(xù)子數(shù)組和為0的子序列?讓原始數(shù)組為a,遍歷數(shù)組,并建立和序列s:s[0]=0,s[i]=s[i-1]a[i]。同時,s[i]的內(nèi)容也記錄i,然后s被穩(wěn)定地排序?,F(xiàn)在s可
算法:給定一個數(shù)組,找出最長連續(xù)子數(shù)組和為0的子序列?
讓原始數(shù)組為a,遍歷數(shù)組,并建立和序列s:s[0]=0,s[i]=s[i-1]a[i]。同時,s[i]的內(nèi)容也記錄i,然后s被穩(wěn)定地排序?,F(xiàn)在s可以分成許多段,每個段的數(shù)目是相同的。最長連續(xù)子陣的第一個數(shù)的下標(biāo)和最后一個數(shù)的下標(biāo)必須分別為一段中第一個數(shù)的I和最后一個數(shù)的I。計算每段中第一個數(shù)字的I和最后一個數(shù)字的I之差,取最大的一個。
設(shè)數(shù)組a是有n個元素的整數(shù)數(shù)組,從中找出最大和子序列?
Pascal語言不能,但是說“最大和子序列”意味著在一個數(shù)組中找到幾個連續(xù)的數(shù)據(jù),它們的和是最大的。也許我沒說清楚,讓我給你舉個例子
例子:一個數(shù)組:2,4,-33,34,45,-23,7
數(shù)組中任意一個數(shù)的連續(xù)數(shù)據(jù)都是這個數(shù)組的子序列
34和45是和最大的子序列
所以要搜索的數(shù)組中必須有負(fù)數(shù),否則會有負(fù)數(shù)沒有最大和子序列(整個數(shù)組是最大的)
不是兩個數(shù)字,而是任意長度的,找到任意長度的子序列
如果:2,4,-33,34,45,-10,12,-2
這不是真的,最大和子序列是:34,45,-10,12。理解的關(guān)鍵要素是:1。任意長度2。連續(xù)性