要求:
全負數:輸出0,開始元素,結束元素。
多個相同大小子數列:輸出座標小的。
主要考慮兩種特殊情況
1.只有0和負數。(因為當前和為負數時會被置0,所以設定fakezero判斷是否遇到了0。)
2.最大子數列和為正,且在最大子數列前有很多0。(在最後過濾掉起始位置的所有0。)
#includeusing namespace std;
int main()
for (int i = 0; i < a; ++i)
if(fakezero)
if (arr[i] == 0)
if (cur > max)
} }if (max > 0)
if(allneg)
cout << 0 << ' ' << arr[0] << ' ' << arr[a-1] << endl;
else
cout << max << ' ' << arr[start] << ' ' << arr[end] << endl;
return 0;
}
最大子列和
int maxsubsequencesum const int a,int n if thissum maxsum 如果新的子列和更大,則更新子列和 maxsum thissum return maxsum 時間複雜度o n3 int maxsubsequencesum const int a,in...
最大子列和
給出乙個長度為 n 的序列 a,選出其中連續且非空的一段使得這段和最大。第一行是乙個整數,表示序列的長度 n。第二行有 n 個整數,第 i個整數表示序列的第 i個數字 a i 輸出一行乙個整數表示答案。輸入7 2 4 3 1 2 4 3 輸出資料範圍 對於 40 的資料,保證 n leq 2 tim...
最大子列和
最大連續子串行和問題 給定k個整數的序列,其任意連續子串行可表示為,其中 1 i j k。最大連續子串行是所有連續子序中元素和最大的乙個,例如給定序列,其最大連續子串行為,最大連續子串行和即為20。注 為方便起見,如果所有整數均為負數,則最大子串行和為0。解決這樣乙個問題是乙個很有趣的過程,我們可以...