力扣(LeetCode)813. 最大平均值和的分组(C++)
创始人
2024-02-22 01:25:54
0

动态规划

pp
本题需要用到前缀和,前缀和需要将下标 iii 后移一位,所以我们将状态的下标 iii 也后移一位;由于状态转移依赖于 j−1j-1j−1 ,我们将 jjj 的下标后移一位。

class Solution {
public:double largestSumOfAverages(vector& nums, int m) {int n = nums.size();vector s(n+1);for(int i = 1;i<=n;i++) s[i] = s[i-1] + nums[i-1];vector> f(n+1,vector(m+1,-1e9));for(int i = 0;i<=m;i++) f[0][i] = 0;//前[1-0]不能分段,均值为0;f[0][0] = 0;// [1-0]只能分成0段for(int i = 1;i<=n;i++)for(int j = 1;j<=m;j++)for(int k = 0;k<=i-1;k++)f[i][j] = max(f[i][j],f[k][j-1]+(double)(s[i]-s[k])/(i-k));return f[n][m];}
};
  1. 时间复杂度 : O(n2×m)O(n^2\times m)O(n2×m) , nnn 是数组长度 ,状态转移的时间复杂度 O(n2×m)O(n^2\times m)O(n2×m) 。
  2. 空间复杂度 : O(n2×m)O(n^2\times m)O(n2×m) ,所有状态的空间复杂度 O(n2×m)O(n^2\times m)O(n2×m) 。

AC

AC

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...