1.维护一个买入时间的最小单调栈 再用卖出数组相减 找出最大值
2.当天减去前一天形成一个数组,代表今天买入明天卖出的收益情况,转换为求数组最大连续和既是最大收益
private function monSta($arr){
$minSta = [];
$minSta[] = $arr[0];
$max = 0;
for($i=0;$i<count($arr)-1;$i++){
if($arr[$i]<end($minSta)){
$minSta[] = $arr[$i];
}else{
$minSta[] = end($minSta);
}
}
for($i=1;$i<count($arr);$i++){
$max = ($arr[$i] - $minSta[$i-1])>$max?($arr[$i] - $minSta[$i-1]):$max;
}
return $max;
}