하위 배열 의 최대 인 스 턴 스 코드 를 구하 십시오.
예 를 들 어 입력 한 배열 은 1,-2,3,10,-4,7,2,-5 이 고 가장 큰 하위 배열 은 3,10,-4,7,2 이기 때문에 이 하위 배열 의 것 과 18 로 출력 된다.
상태 이동 방정식 을 찾 았 습 니 다.dp[i]는 앞의 i 개 수 에서 i 를 포함 하 는 하위 배열 의 최대 합 을 표시 합 니 다.i 번 째 숫자 가 가장 크 거나 i-1 을 포함 하 는 하위 배열 의 최대 크기 와(즉 dp[i-1])를 결합 해 야 합 니 다.즉,dp[i]=max{arr[i],dp[i-1]+arr[i]};
코드 는 다음 과 같다.
#include <stdio.h>
#define max(a,b) (a)>(b)?(a):(b)
int res(int* arr, int len){
// :)
int max = -(1<<31);
int i;
for(i=1;i<len;i++){
arr[i] = max(arr[i],arr[i-1]+arr[i]);
if(max < arr[i]) max = arr[i];
}
return max;
}
int main(){
int arr[] = {1,-2,3,10,-4,7,2,-5};
printf("%d
",res(arr,8));
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PHP 배열에서 요소의 값이 최대 값인 키 이름을 가져옵니다.Qiita 에 " "@ PHP 매뉴얼 데이터 최대값이 나타나는 순서대로 획득 결과 키를 정렬한 후 가져오기 결과 @ paiza.IO PHP v5.6.40, v7.1.33, v7.4.4 " "@ StackOverflo...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.