813. Largest Sum of Averages

813. Largest Sum of Averages

class Solution {
public:
    double largestSumOfAverages(vector<int>& A, int K) {
        int n = A.size();
        
        // dp[k][i]: largestSumOfAverages of [0,i] with up to k partitions
        // dp[0][i]: largestSumOfAverages of [0,i] with 0 partition = (sums[i+1]-sums[0])/(i+1)
        // dp[k][i]: max(dp[k-1][j] + (sums[i+1]-sums[j+1]) / (i-j), dp[k-1][i])
        vector<vector<double>> dp(K, vector<double>(n, 0));
        
        vector<double> sums(n+1, 0);
        for (int i = 0; i < A.size(); i++)
            sums[i+1] = sums[i] + A[i];
        
        for (int i = 0; i < n; i++)
            dp[0][i] = (sums[i+1] - sums[0]) / (i+1);  // single partition
        for (int k = 1; k < K; k++) {
            for (int i = 0; i < n; i++) {
                dp[k][i] = dp[k-1][i];
                for (int j = 0; j < i; j++) {
                    dp[k][i] = max(dp[k][i], dp[k-1][j] + (sums[i+1]-sums[j+1]) / (i-j));
                }
            }
        }
        
        return dp[K-1][n-1];
    }
};

 

转载于:https://www.cnblogs.com/JTechRoad/p/8978410.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101688.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mvdr波束 matlab,mvdr波束形成matlab[通俗易懂]

    mvdr波束 matlab,mvdr波束形成matlab[通俗易懂]信息与通信工程学院阵列信号处理实验报告(自适应波束形成Matlab仿真)…同时研究了窄带信号的自适应波束形成的经典算法。研究并仿真了基于最小均方误差准则的LMS算法、RLS算法和MVDR自适应算法,并且做了一些比较。关键词:数字……MVDR算法matlab程序_计算机软件及应用_IT/计算机_专业资料。clc…根据期望信号的导向矢量,可以采取MVDR算法…

    2022年6月22日
    27
  • latex 希腊字母表_希腊字母怎么打出来

    latex 希腊字母表_希腊字母怎么打出来Latex希腊字母对照表。

    2022年10月13日
    1
  • 2.6 低音谱F谱表[通俗易懂]

    2.6 低音谱F谱表[通俗易懂]2.6 低音谱F谱表七音唱名倒念:tilasolfamiredo需要记。达到阅读五线谱像阅读文字那样。

    2022年8月5日
    4
  • fckeditor的配置方法

    fckeditor的配置方法本文章借鉴的是:马千里的博客今天早晨用了一点时间找了一个开源的富文本编辑器,我之前一直用一个很简单的,受限于功能,复用性一直不好,每次重建一个网站都需要用非常多的时间来处理,比较繁琐。在这里记录一下

    2022年7月3日
    20
  • 矩阵幂(矩阵相乘)

    矩阵幂(矩阵相乘)题目描述给定一个 n n 的矩阵 求该矩阵的 k 次幂 即 P k 输入描述 第一行 两个整数 n 2 lt n lt 10 k 1 lt k lt 5 两个数字之间用一个空格隔开 含义如上所示 接下来有 n 行 每行 n 个正整数 其中 第 i 行第 j 个整数表示矩阵中第 i 行第 j 列的矩阵元素 Pij 且 0 lt Pij lt 10 另外 数据保证最后结果不会超过 10 8 输出描述 对于每组测试数据 输

    2025年9月17日
    3
  • Jenkins安装_jenkins安装与配置

    Jenkins安装_jenkins安装与配置前言jenkins的环境搭建方法有很多,本篇使用docker快速搭建一个jenkins环境。环境准备:mac/Linuxdockerdocker拉去jenkins镜像先下载jenkins镜

    2022年7月30日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号