最大連續子串行求和

2021-09-01 16:57:56 字數 507 閱讀 2925

問題:

有一串 int 數字串,存在陣列a中。要求找到起始位置start和終止位置end,使得從start位置到end位置的所有數字之和最大,返回這個最大值max。

演算法思路:

設 suffer 為以a[x] 終止且包含a[x] 的最大序列的和,有:

if(suffer+a[x+1]>max) suffer+=a[x+1],max=suffer;

else if(suffer+a[x+1]) suffer+=a[x+1];

else suffer=0;

保證max是所有suffer中最大的乙個。其演算法的時間複雜度為o(n),**實現如下:

public int getmaxsub(int a)

else if(a[i]+suffer>0)

else suffer=0;

}return suffer;

}

最大連續子串行求和

time limit 1 s memory limit 32 mb submitted 120 accepted 67 64bit integer format lld submit 給定k個整數的序列,其任意連續子串行可表示為,其中 1 i j k。最大連續子串行是所有連續子串行中元素和最大的乙個...

最大連續子串行求和

hz偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了 在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如 連續子向量的最大和為8 從第0個開始,到第...

最大連續子串行求和問題

最大連續子串行求和問題如下 給定乙個序列 a1,a2,a3.an,求i,j 1 i j n 使得ai aj最大,輸出這個最大值的和。例 輸入 2 11 4 13 5 2 顯而易見11 4 13 20為最大值,因此此時的最大值為20。採用暴力法複雜度為o 採用動態規劃的方法進行編寫 複雜度會降低到o ...