4 solutions

  • 3
    @ 2024-12-26 13:13:48
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+10;
    int a[N],f[N]; //f[i]表示以a[i]结尾的子数组的和 
    int main()
    {
    	int maxv=-1010;
    	int n;
    	cin>>n;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i];
    		int s=f[i-1];
    		if(s<0) //说明不需要添加
    		{
    			s=0;
    		}
    		f[i]=s+a[i];//更新以a[i]结尾的子数组和
    		maxv=max(maxv,f[i]); 
    	}
    	cout<<maxv;
    	return 0;
    }
    
    
    • 1
      @ 2025-1-4 15:53:17
      
      #include<bits/stdc++.h>
      using namespace std;
      const int N=1e5+10;
      int f[N],a[N];
      int main()
      {
      	int maxv=-1010;
      	int n;
      	cin>>n;
      	for(int i=1;i<=n;i++)
      	{
      		cin>>a[i];
      		int s=f[i-1];
      		if(s<0) s=0;
      		f[i]=s+a[i];
      		maxv=max(maxv,f[i]); 
      	}
      	cout<<maxv;
      	return 0;
      }
      • 0
        @ 2025-4-19 19:54:30
        #include<bits/stdc++.h>
        using namespace std;
        const int N=1e5+10;
        int a[N],f[N];
        int main(){
        	int n;
        	cin>>n;
        	for(int i=1;i<=n;i++)
        	{
        		cin>>a[i];
        	}
        	for(int i=1;i<=n;i++)
        	{	if(f[i-1]>0)
        		{
        			f[i]=f[i-1]+a[i];
        		}
        		else
        		{
        			f[i]=a[i];
        		}
        	}
        	int res=-2147483648;
        	for(int i=1;i<=n;i++)
        	{
        		res=max(res,f[i]);
        	}
        	cout<<res;
        	return 0;
        }
        
        
        • -3
          @ 2025-1-15 10:24:00
          • 1

          Information

          ID
          2140
          Time
          1000ms
          Memory
          256MiB
          Difficulty
          3
          Tags
          (None)
          # Submissions
          36
          Accepted
          18
          Uploaded By