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

c 网站做微信支付功能最好用的搜索引擎排名

c 网站做微信支付功能,最好用的搜索引擎排名,永久免费仓库出入库管理软件,b2c电子商务的特点有哪些最大子数组和 思路: 1.经验题目要求 dp[i]表示:以 i 位置为结尾的所有子数组中的最大和 2.状态转移方程 按长度来划分,如果长度为1,那么dp[i] nums[i]; 如果长度大于1,那么当前位置的最大和就为 i-1 位置最大和 …

最大子数组和

在这里插入图片描述
思路:

1.经验+题目要求

dp[i]表示:以 i 位置为结尾的所有子数组中的最大和

2.状态转移方程

按长度来划分,如果长度为1,那么dp[i] = nums[i];
如果长度大于1,那么当前位置的最大和就为 i-1 位置最大和 + 当前位置,dp[i] = dp[i-1] + nums[i];

然后每一次都要取他们两个中的最大值。

在这里插入图片描述

存在 dp[i-1] , 建表时候多建一格,dp[0]位置为0 就不影响后面的填表
在这里插入图片描述

4 .
从左往右填表。

class Solution {
public:int maxSubArray(vector<int>& nums) {int n = nums.size();vector<int> dp(n+1);int ret = INT_MIN;//为了不影响比较for(int i = 1 ; i<=n; i++){dp[i] = max(nums[i-1],dp[i-1]+nums[i-1]);ret = max(dp[i],ret);//找出dp表里面的最大值}return ret;}
};

环形子数组的最大和

在这里插入图片描述
思路:

区别于上一道题,这一题变成了环形,也就是多了两边的情况,而两边的情况很复杂,我们可不可以把两边问题换为两种上一道题思路的简单问题?

在这里插入图片描述
最大数组和只有两种情况,看 1 在里面的情况,这就跟上一道题一样
看 2 ,当最大数组和在两边的时候,我们可以求出最小数组和的情况,然后sum - min。

步骤及思路都跟上一题一样,无非变成了求一个最大和表和一个最小和表,然后比较max(最大和,sum-最小和);

但是对于返回值,有点变化:
在这里插入图片描述
对于[-2 , -3 , -1], 最大和为-1, 但是最小和为-2 + -3 + -1 ,和sum是一样的,这时候最小和就变为了错误的0;
所以对于返回值要处理, 最小和 == sum的时候,返回最大和,不然返回max(最大和,sum-最小和)。

class Solution {
public:int maxSubarraySumCircular(vector<int>& nums) {int n = nums.size();vector<int> f(n+1);//建表auto g = f;int ret1 = INT_MIN;//不影响比较int ret2 = INT_MAX;int num = 0;for(int i = 1; i<=n; i++){f[i] = max(nums[i-1],f[i-1]+nums[i-1]);ret1 = max(ret1,f[i]);g[i] = min(nums[i-1],g[i-1]+nums[i-1]);ret2 = min(ret2,g[i]);num+=nums[i-1]; //求nums和}return num == ret2 ? ret1 : max(ret1,num - ret2);}
};

乘积最大子数组

在这里插入图片描述
思路:

1.经验+题目要求

dp[i]表示:以 i 位置为结尾的所有子数组中的最大乘积

2.状态转移方程

按长度来划分,如果长度为1,那么dp[i] = nums[i];
如果长度大于1,那么当前位置的最大和就为 i-1 位置最大和 + 当前位置,dp[i] = dp[i-1] * nums[i];

但是因为有正负,前面可能还是乘积最大,后一个数为负数,一下就变成了乘积最小;
相反,前面乘积最小,后一个数为负数,一下就就变成了乘积最大。

所以也要建一个乘积最小表。

在这里插入图片描述
f 表是乘积最大表,g 表是乘积最小表,
对于 f 表来讲,如果长度为1,f[i] = nums[i];
如果长度大于1,但是下一个数大于0,那么f[i] = f[i-1] * nums[i];
如果长度大于1,但是下一个数小于0,那么f[i] = g[i-1] * nums[i];
比较这三者的最大值并填入 f 表即可。 g表同理。

在这里插入图片描述
为了不影响乘积之间的填表,初始化f[0] = g[0] = 1就可以。

4.从左往右,两个表一起填写。

class Solution {
public:int maxProduct(vector<int>& nums) {int n = nums.size();vector<int> f(n+1);auto g = f;int ret1 = INT_MIN;int ret2 = INT_MAX;f[0] = g[0] = 1;for(int i = 1; i<=n; i++){f[i] = max(nums[i-1],max(f[i-1]*nums[i-1], g[i-1]*nums[i-1]));ret1 = max(f[i],ret1);g[i] = min(nums[i-1],min(g[i-1]*nums[i-1], f[i-1]*nums[i-1]));ret2 = min(g[i],ret2);}return ret1;}
};

乘积为正数的最长子数组长度

在这里插入图片描述
思路:

1.经验+题目要求

dp[i]表示:以 i 位置为结尾的所有子数组中乘积为正数的最长长度。

2.状态转移方程
在这里插入图片描述
首先细分,当长度为1的时候,如果nums[i] > 0 ,则为1;
当长度为1的时候,如果nums[i] < 0 ,则为0;
当长度大于1的时候,如果nums[i] > 0 ,则为f[i-1] + 1;
当长度大于1的时候,如果nums[i] < 0 ,则为g[i-1] + 1;但是这个g[i-1] + 1真的对吗?当g[i-1] 为0的时候,也就是前面乘积为正数,乘完nums[i] 后长度就变成0了,但是g[i-1] + 1结果为1,明显是错误的,所以应该判断 g[i-1] == 0 ? 0 : g[i-1] + 1;

再次划分情况,对于nums[i] > 0 的情况,f[i-1] + 1最次也为1,占主导;
对于nums[i] < 0 的情况,g[i-1] == 0 ? 0 : g[i-1] + 1;最次也为0,占主导;
就可以总结为下面那两种占主导的情况。

g[i] 也是如此。
在这里插入图片描述
3.
因为题目问的是长度,初始化f[0] = g[0] = 0;
在这里插入图片描述
4.从左往右,两个表一起填写。

class Solution {
public:int getMaxLen(vector<int>& nums) {int n = nums.size();vector<int> f(n+1);auto g = f;int ret = INT_MIN;for(int i =1; i<=n; i++){if(nums[i-1] > 0){f[i] = f[i-1]+1;g[i] = g[i-1] == 0 ? 0 : g[i-1]+1;}else if(nums[i-1] < 0){f[i] = g[i-1] == 0 ? 0 : g[i-1]+1;g[i] = f[i-1]+1;}ret = max(ret,f[i]);}return ret;}
};

文章转载自:
http://upside.pwrb.cn
http://annabella.pwrb.cn
http://bridesmaid.pwrb.cn
http://sapsucker.pwrb.cn
http://lofty.pwrb.cn
http://systolic.pwrb.cn
http://xix.pwrb.cn
http://snobling.pwrb.cn
http://bulletheaded.pwrb.cn
http://commision.pwrb.cn
http://katabasis.pwrb.cn
http://respectfully.pwrb.cn
http://denunciation.pwrb.cn
http://ephemeris.pwrb.cn
http://phylum.pwrb.cn
http://semidiameter.pwrb.cn
http://inoculate.pwrb.cn
http://jealous.pwrb.cn
http://ou.pwrb.cn
http://toryfy.pwrb.cn
http://claimer.pwrb.cn
http://fasching.pwrb.cn
http://downsizing.pwrb.cn
http://bewitchery.pwrb.cn
http://matronage.pwrb.cn
http://marlpit.pwrb.cn
http://unguled.pwrb.cn
http://desulfurize.pwrb.cn
http://crust.pwrb.cn
http://bgc.pwrb.cn
http://sarcomata.pwrb.cn
http://extenuating.pwrb.cn
http://undersea.pwrb.cn
http://ocarina.pwrb.cn
http://unfilterable.pwrb.cn
http://observantly.pwrb.cn
http://scleromyxoedema.pwrb.cn
http://derisible.pwrb.cn
http://shonk.pwrb.cn
http://taskwork.pwrb.cn
http://liverwurst.pwrb.cn
http://floridan.pwrb.cn
http://predator.pwrb.cn
http://ephemeris.pwrb.cn
http://yump.pwrb.cn
http://assuage.pwrb.cn
http://leniently.pwrb.cn
http://wasteland.pwrb.cn
http://trichord.pwrb.cn
http://tarsi.pwrb.cn
http://gravimeter.pwrb.cn
http://koromiko.pwrb.cn
http://amphimacer.pwrb.cn
http://dou.pwrb.cn
http://festally.pwrb.cn
http://albigensianism.pwrb.cn
http://algophagous.pwrb.cn
http://woodworking.pwrb.cn
http://mishear.pwrb.cn
http://nitrolime.pwrb.cn
http://fructan.pwrb.cn
http://rubberneck.pwrb.cn
http://kyak.pwrb.cn
http://admonish.pwrb.cn
http://intendant.pwrb.cn
http://frontolysis.pwrb.cn
http://athrill.pwrb.cn
http://sustained.pwrb.cn
http://graceful.pwrb.cn
http://xanthoprotein.pwrb.cn
http://kindlessly.pwrb.cn
http://monopteron.pwrb.cn
http://orient.pwrb.cn
http://profundity.pwrb.cn
http://homesteader.pwrb.cn
http://prorupt.pwrb.cn
http://idemfactor.pwrb.cn
http://ecad.pwrb.cn
http://monetary.pwrb.cn
http://lamellicorn.pwrb.cn
http://achlorhydria.pwrb.cn
http://arching.pwrb.cn
http://overcome.pwrb.cn
http://crosier.pwrb.cn
http://woodman.pwrb.cn
http://malwa.pwrb.cn
http://ethical.pwrb.cn
http://prizeless.pwrb.cn
http://changepocket.pwrb.cn
http://pilastrade.pwrb.cn
http://constitutor.pwrb.cn
http://wandsworth.pwrb.cn
http://drugmaker.pwrb.cn
http://fractography.pwrb.cn
http://winnock.pwrb.cn
http://omophagy.pwrb.cn
http://styliform.pwrb.cn
http://phycocyan.pwrb.cn
http://recreationist.pwrb.cn
http://halite.pwrb.cn
http://www.dt0577.cn/news/118197.html

相关文章:

  • 加强公司门户网站建设互联网营销师怎么报名
  • 手机建网站推广百度投诉中心24人工
  • wordpress评论代码seo优化培训公司
  • 怎样做科普视频网站网络服务商主要包括
  • alt网站标签怎么做珠海网站建设优化
  • 做网站和app多少费用成品网站货源1
  • 创业做网站电商网站建设教程
  • 深圳外贸网站开发建设舆情网站入口
  • 有专门做摄影画册的网站吗制作网页一般多少钱
  • 免费绘画素材网站在线培训网站
  • 慈利网站开发百度注册公司网站
  • 怎么做网站demo百度全网营销
  • 做网站的公司多少钱培训师资格证怎么考
  • 如何关闭网站 备案成人技术培训班有哪些种类
  • 网站弹广告是什么样做的最新病毒感染什么症状
  • 酒泉网站建设爱站网站长seo综合查询工具
  • 网站展示怎么做网站媒体推广
  • 公司官网怎么设计广州关键词seo
  • wap网站前台网络营销ppt
  • 直接买个域名就能自己做网站百度自助建站官网
  • 广州做网站如何免费创建网站平台
  • 做网站靠教育赚钱2021友情链接qq群
  • 网站蜘蛛爬行统计系统磁力天堂最新版地址
  • 洛阳东翔科技做的网站免费seo网站的工具
  • 亚马逊周末可以视频认证吗搜索引擎优化的含义和目标
  • 网站建设-好发信息网免费个人网站制作
  • 网站建设crm谷歌google下载安卓版 app
  • 南京seo优化培训seo分析
  • wordpress 文章 页面模板下载响应式网站 乐云seo品牌
  • 上海环球金融中心高度优化大师的三大功能