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

59网站一起做网店普宁培训心得总结怎么写

59网站一起做网店普宁,培训心得总结怎么写,建网站软件哪个好,电商网站建设电话问题描述解题思路伪代码代码实现复杂度分析 问题描述 给定一个有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/77618.html

相关文章:

  • 哈尔滨市工程建设监理有限公司澳门seo关键词排名
  • 沈阳做网站的seo网站优化外包
  • 高端建站属于外包公司么怎样进行网络营销吸引顾客
  • 自建网站的流程微信引流推广精准粉
  • 免费做效果图网站seo搜索优化
  • wap网站的域名站长是什么职位
  • 国外wordpress资源优化网站排名
  • 长沙网站制作平台2023推广平台
  • 装修室内设计培训学校惠州seo外包费用
  • 机加工网站如何在百度上做产品推广
  • 江门市建设工程投标网站企业网站代运营
  • 网站建设 最新软件网站广告投放收费标准
  • 武汉开发网站建设seo关键词排名优化哪家好
  • 做游戏网站有钱赚吗网络营销推广方案策划
  • 赣州梦幻网络科技有限公司seo推广的特点
  • 南宁致峰网站建设广告竞价排名
  • 湘潭做网站建设的公司免费引流推广工具
  • 太原网站设计制作模板网站如何建站
  • 字体设计网站有哪些外链网盘下载
  • 网站开发直播北京互联网公司排名
  • 开发一个平台鄂尔多斯seo
  • 企业网站程序带wap刷僵尸粉网站推广
  • 如何做网站页面微商怎么引流被加精准粉
  • wordpress安装包文件长沙seo咨询
  • 网站开发系统搭建推广排名seo
  • 汕头正规网站建设模板总部高级搜索引擎
  • win10 电脑做网站服务器生成关键词的软件
  • 电子商务网站建设重要性seo是什么软件
  • 微网站开发 mui框架长沙网络推广小公司
  • 狮山公司网站建设软文写手兼职