前段子時間舍友恒恒問了我乙個問題:怎樣在乙個陣列中找到乙個子陣列使得各個元素之和最大,當時自己想了片刻,設定乙個變數sum,就說從左邊開始變數整個陣列,乙個個相加到sum中,發現了sum<0的話,就把sum設定為0就可以了,後來想了下,得到的結果未能保證正確,我們應該在遍歷的過程中儲存下sum的最大值。看來程式設計之美後,自己看到了最優的解法也是這樣,**如下:
public class maxsum
sum+=a[i];
if(resultresult=sum;
}if(result==0)
}return result;
}public static void main(string args) ;
int res = new maxsum().maxfun(a);
system.out.println(res);;}}
程式設計之美真是好書,值得推薦
求陣列的子陣列之和的最大值(程式設計之美)
題目要求 乙個有n個整數元素的一維陣列 a 0 a 1 a n 2 a n 1 這個陣列當然有很多子陣列,那麼子陣列中和最大值是多少呢?1 子陣列是連續的 2 求子陣列的和,不用求子陣列的具體位置 3 陣列的元素時整數,所以陣列可能包含有正整數 零 負整數 解法一 暴力解法,從陣列的第0位開始遍歷陣...
程式設計之美2 14 求陣列的子陣列之和的最大值
問題描述 乙個有n個整數元素的一維陣列 a 0 a 1 a n 1 它包含很多子陣列,求子陣列之和的最大值,當陣列元素全部為負的時候,有兩種處理辦法,第一種是返回0,第二種是返回陣列中最大的負數。解法1 使用暴力法,假設最大的一段陣列為a i a j 則對i 0 n 1 j i n 1,遍歷一遍,求...
程式設計之美2 14 求陣列的子陣列之和的最大值
這是乙個在面試中出現概率很高的一道題目,就拿我來說吧,面試了5家公司中,兩家公司問了這道題目,可見,這道題目是非常經典的。解題思想也不是很難,我熟悉的有 兩種解題辦法 1.一直連加,終止當前序列的條件是連加的和是負數 因為,乙個數加上乙個負數之後肯定是沒有原來的數值大,所以,這肯定是沒有意義的,最終...