zoukankan      html  css  js  c++  java
  • 牛客在线编程_连续子数组最大和

    题目地址

    求最大子段和

    • 可以用贪心,dp和分治。
    • dp的做法其实和贪心一模一样...也不知道是不是dp。

    code1(贪心)

    #include <bits/stdc++.h>
    using namespace std;
    const int N=1e5+50;
    int n,a[N];
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
        }
        int ans=-0x3f3f3f3f;
        int p=0;
        for(int i=1;i<=n;i++){
            p+=a[i];
            ans=max(ans,p);
            if(p<0){
                p=0;
            }
        }
        printf("%d
    ",ans);
        return 0;
    }
    

    code2(分治)

    #include <bits/stdc++.h>
    using namespace std;
    const int N=1e5+50;
    int n,a[N];
    int sum(int l,int r){
        if(l==r){
            return a[l];
        }
        int mid=(l+r)/2;
        int lsum=sum(l,mid);
        int rsum=sum(mid+1,r);
        int ls=0;
        int rs=0;
        int tmp=0;
        for(int i=mid;i>=l;i--){
            tmp+=a[i];
            ls=max(ls,tmp);
        }
        tmp=0;
        for(int i=mid+1;i<=r;i++){
            tmp+=a[i];
            rs=max(rs,tmp);
        }
        int msum=ls+rs;
        return max(msum,max(lsum,rsum));
    }
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
        }
        printf("%d
    ",sum(1,n));
        return 0;
    }
    

    code3(动态规划)

    #include <bits/stdc++.h>
    using namespace std;
    const int N=1e5+50;
    int n,a[N],dp[N];
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
        }
        dp[1]=a[1];
        int ans=dp[1];
        for(int i=2;i<=n;i++){
            if(dp[i-1]>0){
                dp[i]=dp[i-1]+a[i];
            }else{
                dp[i]=a[i];
            }
            ans=max(ans,dp[i]);
        }
        printf("%d
    ",ans);
        return 0;
    }
    
  • 相关阅读:
    scrollView(3)-相册浏览简单的缩放
    ScrollView(2)轮播图-点击跳转
    定制单元格-cell
    模态视图present
    将博客搬至CSDN
    VBS进行http请求及JSON数据的读取和生成
    igraph安装(R/Python)
    teiid入门
    漫谈设计模式
    MapReduce实例-基于内容的推荐(一)
  • 原文地址:https://www.cnblogs.com/zxcoder/p/12231663.html
Copyright © 2011-2022 走看看