코드 복사 코드는 다음과 같습니다.
//작성자: Distant Expectation
// QQ: 15624575
//알고리즘 분석: 1. 정수 시퀀스여야 합니다. 2. 전체 시퀀스가 모두 음수가 아닌 경우 최대 하위 시퀀스의 첫 번째 항목은 양수여야 하며, 그렇지 않으면 다음 숫자는 다음과 같습니다. 최대 하위 수열은 첫 번째 수열과 함께 추가됩니다. 항이 음수이면 그 합은 확실히 가장 크지 않습니다. 3. 전체 수열이 음수이면 가장 큰 하위 수열의 합은 0입니다.
//모두 -음수 시퀀스는 매우 간단하며 예시가 없습니다.
$arr=array( 4,-3,5,-2,-1,2,6,-2)
function getmaxsum($arr){
$thissum=0;
$maxsum=0;
$start=0;//하위 시퀀스의 시작 인덱스 기록
$end=0;//하위 시퀀스의 종료 인덱스 기록
for($i=0;$i
if($thissum> ;$maxsum){//현재 하위 시퀀스의 합이 현재 최대 하위 시퀀스보다 큰 경우 시퀀스의 합
$maxsum=$thissum;//현재 최대 하위 시퀀스의 합 변경
$end =$i;
}else if($thissum<0){//현재 하위 시퀀스의 합이 0보다 작은 경우 다음 요소 값은 가장 큰 하위 시퀀스의 첫 번째 항목으로 간주됩니다. 여기서는 가장 큰 자체 시퀀스의 첫 번째 항목이 양수여야 함을 보장할 수 있습니다
$thissum=0;//이 시퀀스가 모두 음수가 아니라는 전제가 있습니다
$start=$i 1 ;
}
}
$parr=array($start,$end,$maxsum)
return $parr
}
list ($start,$end,$ maxsum)=getmaxsum($arr);
echo '최대 하위 시퀀스는 다음과 같습니다.'
for($i=$start;$i<=$end;$i ) {
echo $arr[ $i].'
}
echo '
'; echo '최대 하위 시퀀스의 합은'
이상은 최강의 두뇌 김수현의 내용을 포함하여 PHP에서 최대 하위 시퀀스 합을 찾는 알고리즘의 구현을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.