文章

3

粉丝

0

获赞

23

访问

539

头像
(和pdf同格式)最大子串和 题解:
P1703 厦门大学复试机试题
发布于2026年3月2日 16:38
阅读数 209

#include<bits/stdc++.h>
using namespace std;

int main(){
int dp[105];
int a[105];
int n;
while(cin>>n){
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    dp[0]=a[0];
    int maxx=dp[0];
    int start_num=0;
    int end_num=0;
    int temp_start =0;

    for(int i=1;i<n;i++){
        dp[i]=max(dp[i-1]+a[i],a[i]);

        if(dp[i]==a[i]) temp_start=i;//当前记录子段的临时起点

        if(dp[i]>maxx){
            maxx=dp[i];
            start_num=temp_start;//目前的最大子段,记录起点
            end_num=i;
        }
    }
    for(int i=start_num;i<=end_num;i++){
        cout<<a[i]<<' ';
    }
    cout<<endl<<maxx<<endl;

}

return 0;
}






 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发