leetcode 813- dp +遞歸

這個題的知識點很多呀,分割組塊。最終用二維dp進行遞歸。

圖片.png
  • code:
double LSA(vector<int>& a, int n, int k, vector<vector<double>>& dp, vector<double> sum_) {
    if (dp[k][n] > 0)
        return dp[k][n];
    if (k == 1)
        return sum_[n] / (n + 1);
    for (int i = 0; i < n; i++) {
        dp[k][n] = max(dp[k][n], LSA(a, i, k - 1,dp,sum_) + (sum_[n] - sum_[i]) / (n - i));
    }
    return dp[k][n];
}
double largestSumOfAverages(vector<int>& A, int K) {
    vector<double> sum_(A.begin(),A.end());
    for (int i = 1; i < A.size(); i++)
        sum_[i] = sum_[i - 1] + A[i];
    vector<vector<double>> dp(K+1, vector<double>(A.size(), 0.0));
    return LSA(A, A.size()-1, K,dp,sum_);
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容