keybuysellfor 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
問(wèn)題變化:數(shù)組A中元素連續(xù)相加最大的子數(shù)組,只有當(dāng)元素有負(fù)數(shù)時(shí)才有意義
分治策略的求解思路:
1.找到數(shù)組中的中央位置mid,A[low..mid],A[mid+1..high]
2.A[low,high] 完全位于子數(shù)組A[low..mid] low<=i<=j<=mid
3.完全位于A[mid+1..high] mid<i<=j<=hign
4.跨越中點(diǎn) low<=i<=mid<j<=hign
5.找出左半部分最大和(從中間到左找),找出右半部分最大和(從中間向右找)
leftSum leftfor i=mid;i>=low;i-- sum=sum+A[i] if sum>leftSum leftSum=sum left=irightSum rightfor j=mid+1;j<=high;j++ sum+=A[j] if sum > rightSum rightSum=sum right=i6.遞歸調(diào)用 mid=(low+high)/2 find(A,low,mid) find(A,mid+1,high) findCross(A,low,mid,high)
相關(guān)推薦:
PHP實(shí)現(xiàn)求連續(xù)子數(shù)組最大和問(wèn)題2種解決方法講解
PHP實(shí)現(xiàn)求解最長(zhǎng)公共子串思路方法
以上就是php實(shí)現(xiàn)最大子數(shù)組的思路講解的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注 其它相關(guān)文章!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注