가장 큰 하위 컬럼과 깊이 연구

최대 자식 열 문제를 들어, 우리는 매우 잘 알고 있어야합니다. DP 알고리즘으로 매우 쉽고 빠르게 문제 SUM을 찾을 수 있지만, 시작과 열의 끝, 또는 심각한 고려의 가치 문제에 대한 수 있습니다.

   A는, 처음에 필요하지 순서를 끝내는 상황은 값이 필요

예로 PTA에 테스트 포인트 :

   사실, 어려움이 세 가지 조건을 0 혼합 열 음의 수는 모두에 대한 모든 부정적인 0 점이다.

  모두 0 인 경우의 출력은 000이고;

  전체가 마이너스 인 경우, 그 출력은 0 [0] [N -1]

  부정적인 0을 혼합 경우, 출력은 000.

  그것이 생각 천연되도록 남겨진 전체 네거티브 검출 그래서 두 변수 결과 남긴 = 오른쪽 = 0이면 플래그를 설정 = A [0], 오른쪽 = A [N-1].

  그런 다음 코드를 쓰는 것은 쉽다 :

#include<stdio.h>
    int f4(int a[],int n){
    int i,max=0,now=0,l=0,r=0,flag=0;
    a[10001]=0;a[10002]=0;
       
    for(i= 0;i<n;i++){
        if(a[i]>=0)
            flag=1;

        if(now<0){
            l=i;
            r=i;        
            now=a[i];   //刚吸收的数可能非常大,所以必须更新l与r
        }
        else {
            r=i;
            now+=a[i];
        }

        if(now>max){
             max=now;
             a[10002]=a[r];
             a[10001]=a[l];
        }

    }
        if(!flag){
            a[10001]=a[0];
            a[10002]=a[n-1];
           }

        return max;
}
      int main(){
      int i,n;
      scanf("%d",&n);
      int a[10002];
      for(i=0;i<n;i++)
      scanf("%d",&a[i]);

      int sum=f4(a,n);
      printf("%d %d %d",sum,a[10001],a[10002]);

    return 0;
}


출시 팔 개 원래 기사 · 원 찬양 1 · 조회수 197

추천

출처blog.csdn.net/Moby97/article/details/78358596