当前位置: 首页 > wzjs >正文

做外汇那个网站好一键优化免费下载

做外汇那个网站好,一键优化免费下载,做网站需要后端吗,网页设计实验报告总结问题描述解题思路伪代码代码实现复杂度分析 问题描述 给定一个有n(n>0)个整数的序列,要求其m个互不相交的子段,使得这m个子段和最大。 输入:整数序列{nums},m。 输出:最大m子段和。 对于m1的情况,即求最…

  • 问题描述
  • 解题思路
  • 伪代码
  • 代码实现
  • 复杂度分析

问题描述

给定一个有n(n>0)个整数的序列,要求其m个互不相交的子段,使得这m个子段和最大。
输入:整数序列{nums},m。
输出:最大m子段和。

对于m=1的情况,即求最大子数组和

解题思路

我们采用动态规划的思路解决这个问题:
根据常用的状态表示经验我们可以记dp[k][i]为前i个元素的最大k子段和,记last[k][i]为前i个元素中以nums[i-1]结尾的最大k子段和。

对于last[k][i]不难发现有两种情况:

  1. 若第k子段长度大于1,即last[k][i]=last[k][i-1]+nums[i-1];
  2. 若第k子段长度等于1,即last[k][i]=max{last[k-1]}+nums[i-1].则last[k][i]=max{last[k][i-1]+nums[i-1],max{last[k-1]}+nums[i-1]}.

容易得到dp[k][i]=max{dp[k],[i-1],last[k],[i]};
初始化last[1][1]=dp[1][1]=nums[0],last[1][i]=max{last[1][i-1]+nums[i-1],nums[i-1]},dp[1][i] = max(dp[1][i - 1], last[1][i]).

所求的最大m子段和即为dp[m][n].

伪代码

FUNCTION MaxSubArrayM(nums, m) :
Beginn ← LENGTH(nums)DECLARE last[1:n][1:m], dp[1:n][1:m]last[1][1] ← nums[0]dp[1][1] ← nums[0]FOR j FROM 2 TO n :last[1][j] ← MAX(nums[j - 1], last[1][j - 1] + nums[j - 1])dp[1][j] ← MAX(dp[1][j - 1], last[1][j])End For// 处理多子段FOR i FROM 2 TO m :dp[i][0] ← INT_MINlast[i][i - 1] ← INT_MINFOR j FROM i TO n :option1 ← last[i][j - 1] + nums[j - 1]  option2 ← dp[i - 1][j - 1] + nums[j - 1] last[i][j] ← MAX(option1, option2)dp[i][j] ← MAX(dp[i][j - 1], last[i][j])End ForEnd ForRETURN dp[m][n]
End MaxSubArrayM

代码实现

int MaxSubArrayM(vector<int>& nums,int m)
{vector<vector<int>>last(nums.size() + 1, vector<int>(m + 1)), dp(nums.size() + 1, vector<int>(m + 1));last[1][1] = dp[1][1] = nums[0];for (int i = 2; i <= nums.size(); i++){last[1][i] = max(nums[i - 1], nums[i - 1] + last[1][i - 1]);dp[1][i] = max(dp[1][i - 1], last[1][i]);}for (int i = 2; i <= m ; i++){dp[i][0] = last[i][i-1] = INT_MIN;for (int j = i; j <= nums.size(); j++){last[i][j] = max(last[i][j - 1] + nums[j - 1], dp[i - 1][j - 1] + nums[j - 1]);dp[i][j] = max(dp[i][j - 1], last[i][j]);}}return dp[m][nums.size()];
}

复杂度分析

时间复杂度:主要运行时间在两层for循环,故时间复杂度为O(mn).
空间复杂度:不难发现我们申请了m*n的两个vector,故空间复杂度为O(mn).

http://www.dtcms.com/wzjs/441555.html

相关文章:

  • 惠安规划局建设局网站seo关键词推广
  • 团购网站建设目的今日全国最新疫情通报
  • 网站建设页面搜什么关键词能搜到好片
  • 大连网站搜索优名风seo软件
  • 深圳网站建设网络推广福州百度seo代理
  • 网站开发做账seo人员工作内容
  • 太原建设网站公司防恶意点击软件
  • 网站建设简述2023年8月份新冠症状
  • 腾讯广告投放端提供的建站工具有搜索引擎营销的内容有哪些
  • 自己做网站的域名免费下载百度到桌面
  • 山东外贸网站建设app拉新渠道商
  • 网站日常维护做的来不上海seo优化公司 kinglink
  • wordpress 百度地图外贸seo推广
  • 广东省建设工程监督站官方网站刷关键词排名seo
  • 做网站公司599域名查询系统
  • 东莞网站建设(推荐乐云践新)百度推广授权代理商
  • 成都网站建设公司 四川冠辰科技金戈西地那非片
  • 界面设计网站北京seo优化外包
  • 贵阳花果园r区网站建设淘宝推广平台
  • 网站备案去哪注销查询网址域名
  • 免费主题大全下载知乎seo优化
  • 宝安网站制作公司域名批量查询注册
  • 福州自适应网站建设竞价托管的注意事项
  • 网站制作要钱吗厦门做网站公司有哪些
  • 卫浴响应式外贸网站建设推广搜索怎么选关键词
  • 奶茶微网站建设免费网站推广网站破解版
  • 无锡企业网站制作需要多少钱网站制作报价表
  • 家用电脑做网站教程品牌营销策划
  • 12306网站做的好还是百度做的好青岛做网站推广公司
  • 宝安网站建设免费seo网站推荐一下