php数组找最长最左子数组,php实现最大子数组的思路讲解

本篇文章给大家带来的内容是关于php实现最大子数组的思路讲解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。key

buy

sell

for i=0;i

for j=i+1;j

p=key=arr[j]-arr[i]

if !key key=p

if key

问题变化:数组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] mid

4.跨越中点 low<=i<=mid

5.找出左半部分最大和(从中间到左找),找出右半部分最大和(从中间向右找)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)

相关推荐:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值