>  기사  >  백엔드 개발  >  PHP에서 가장 큰 하위 배열을 구현하는 아이디어에 대한 설명

PHP에서 가장 큰 하위 배열을 구현하는 아이디어에 대한 설명

不言
不言원래의
2018-09-12 17:10:091522검색

이 기사는 PHP에서 가장 큰 하위 배열을 구현하는 아이디어에 대한 설명을 제공합니다. 이는 특정 참조 가치가 있으므로 도움이 될 수 있습니다.

key
buy
sell
for i=0;i<n;i++
    for j=i+1;j<n;j++
        p=key=arr[j]-arr[i]
        if !key key=p
        if key<p buy=i sell=j

문제 변형: 배열 A에서 요소의 연속 합이 가장 큰 하위 배열은 요소에 음수가 있을 때만 의미가 있습니다.
분할 정복 전략의 솔루션 아이디어:
1. mid,A[low..mid],A[mid+1..high]
2.A[low,high]는 하위 배열 A[low..mid] low<=i<=j<에 완전히 위치합니다. ;=mid
3.A[ mid+1..high] mid4에 완전히 위치해 있습니다. 왼쪽 절반의 최대 합 찾기(가운데에서 왼쪽으로 찾기), 오른쪽 절반의 최대 합 찾기(가운데에서 오른쪽으로 찾기)

leftSum left
for i=mid;i>=low;i--
    sum=sum+A[i]
    if sum>leftSum
        leftSum=sum
        left=i
rightSum right
for j=mid+1;j<=high;j++
    sum+=A[j]
    if sum > rightSum
        rightSum=sum
        right=i
6.递归调用
    mid=(low+high)/2
    find(A,low,mid)
    find(A,mid+1,high)
    findCross(A,low,mid,high)

관련 권장 사항:

PHP 구현 찾기 연속 하위 배열의 최대 합 문제에 대한 2가지 솔루션

가장 긴 공개 하위 문자열 사고 방법을 해결하는 PHP 구현

위 내용은 PHP에서 가장 큰 하위 배열을 구현하는 아이디어에 대한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.