獲取陣列最大連續增長子陣列
阿新 • • 發佈:2019-01-10
function getMaxSubArr($arrData) { if (empty($arrData)) { return array(); } $arrRet = array(); $intPrev = $arrData[0]; $arrRes[] = $arrData[0]; $intPrevLen = 0; $intCurLen = 1; if (count($arrData) == 1) { $arrRet[1][] = $arrData; return $arrRet; } foreach ($arrData as $key=>$val) { if ($val <= $intPrev) { if ($intCurLen > $intPrevLen) { $arrRet[$intCurLen][] = $arrRes; unset($arrRet[$intPrevLen]); $intPrevLen = $intCurLen; } elseif ($intCurLen == $intPrevLen) { $arrRet[$intPrevLen][] = $arrRes; } $arrRes = array(); $arrRes[$key] = $val; $intCurLen = 1; } else { $arrRes[$key] = $val; $intCurLen++; } $intPrev = $val; } if ($intCurLen > $intPrevLen) { $arrRet[$intCurLen][] = $arrRes; unset($arrRet[$intPrevLen]); } elseif ($intCurLen == $intPrevLen) { $arrRet[$intPrevLen][] = $arrRes; } return $arrRet; }