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

南京网站定制开发公司商企在线营销型网站

南京网站定制开发公司,商企在线营销型网站,有没有做网站的联系方式,韶关建网站1.题目基本信息 1.1.题目描述 如果一个长度为 n 的数组 arr 符合下面其中一个条件&#xff0c;可以称它 连续&#xff1a; 对于所有的 1 < i < n&#xff0c;arr[i] - arr[i - 1] 1。对于所有的 1 < i < n&#xff0c;arr[i] - arr[i - 1] -1。 数组的 值 是…

1.题目基本信息

1.1.题目描述

如果一个长度为 n 的数组 arr 符合下面其中一个条件,可以称它 连续:

  • 对于所有的 1 <= i < n,arr[i] - arr[i - 1] == 1。
  • 对于所有的 1 <= i < n,arr[i] - arr[i - 1] == -1。

数组的 值 是其元素的和。

例如,[3, 4, 5] 是一个值为 12 的连续数组,并且 [9, 8] 是另一个值为 17 的连续数组。而 [3, 4, 3] 和 [8, 6] 都不连续。

给定一个整数数组 nums,返回所有 连续 非空 子序列 的 值 之和。

由于答案可能很大,返回它对 109 + 7 取模 的值。

注意 长度为 1 的数组也被认为是连续的。

1.2.题目地址

https://leetcode.cn/problems/sum-of-consecutive-subsequences/description/

2.解题方法

2.1.解题思路

动态规划

时间复杂度:O(n)

2.2.解题步骤

第一步,状态定义。dpup[i][0]表示以i结尾的最长连续递增子序列的长度(也就是能够匹配的数组的数量),dpup[i][0]表示以i结尾的所有连续递增子序列的求和结果。dpdown[i][0]表示以i结尾的最长连续递减子序列的长度(也就是能够匹配的连续递减数组的数量),dpdown[i][0]表示以i结尾的所有连续递减子序列的求和结果。

第二步,状态初始化。dpup[][0]=0,dpup[][1]=0;dpdown[][0]=0,dpdown[][1]=0

第三步,状态转移。dpup[i][0]+=dpup[i-1][0]+1,dpup[i][1]+=dpup[i-1][1]+i*(dpup[i-1][0]+1);dpdown[i][0]+=dpdown[i+1][0]+1,dpdown[i][1]+=dpdown[i+1][1]+i*(dpdown[i+1][0]+1)(注:这里使用的是+=的递推符号,因为nums后面可能出现重复的数字)

第四步,最终的sum(dpup)+sum(dpdown)-sum(nums)即为题解(因为up和down都算了一次单元素数组,所以需要减去sum(nums)的部分)

3.解题代码

Python代码

class Solution:def getSum(self, nums: List[int]) -> int:# 思路:动态规划m = max(nums)# 第一步,状态定义。dpup[i][0]表示以i结尾的最长连续递增子序列的长度(也就是能够匹配的数组的数量),dpup[i][0]表示以i结尾的所有连续递增子序列的求和结果。dpdown[i][0]表示以i结尾的最长连续递减子序列的长度(也就是能够匹配的连续递减数组的数量),dpdown[i][0]表示以i结尾的所有连续递减子序列的求和结果。dpup = [[0, 0] for _ in range(m + 2)]dpdown = [[0, 0] for _ in range(m + 2)]# 第二步,状态初始化。dpup[*][0]=0,dpup[*][1]=0;dpdown[*][0]=0,dpdown[*][1]=0# 第三步,状态转移。dpup[i][0]+=dpup[i-1][0]+1,dpup[i][1]+=dpup[i-1][1]+i*(dpup[i-1][0]+1);dpdown[i][0]+=dpdown[i+1][0]+1,dpdown[i][1]+=dpdown[i+1][1]+i*(dpdown[i+1][0]+1)(注:这里使用的是+=的递推符号,因为nums后面可能出现重复的数字)for i in nums:dpup[i][0] += dpup[i - 1][0] + 1dpup[i][1] += dpup[i - 1][1] + i * (dpup[i - 1][0] + 1)dpdown[i][0] += dpdown[i + 1][0] + 1dpdown[i][1] += dpdown[i + 1][1] + i * (dpdown[i + 1][0] + 1)# 第四步,最终的sum(dpup)+sum(dpdown)-sum(nums)即为题解(因为up和down都算了一次单元素数组,所以需要减去sum(nums)的部分)mod = 10 ** 9 + 7result = (sum([dpup[i][1] + dpdown[i][1] for i in range(m + 1)]) - sum(nums)) % modreturn int(result)

4.执行结果


文章转载自:

http://OehSkKL2.mfsjn.cn
http://aTMwDcCD.mfsjn.cn
http://3F1XM5ri.mfsjn.cn
http://6uNTcpLw.mfsjn.cn
http://k0byOjDe.mfsjn.cn
http://qwTS21iO.mfsjn.cn
http://TJnBxxfX.mfsjn.cn
http://Sym2lgbt.mfsjn.cn
http://uvl0KKU2.mfsjn.cn
http://SRYLvBax.mfsjn.cn
http://OeEGo6cI.mfsjn.cn
http://0P0W6Tbs.mfsjn.cn
http://NP5oqQ9V.mfsjn.cn
http://UMungWZ5.mfsjn.cn
http://usbpX51j.mfsjn.cn
http://5t6O9VX0.mfsjn.cn
http://j6RrVMBZ.mfsjn.cn
http://DN5EPcvY.mfsjn.cn
http://74GoHkNt.mfsjn.cn
http://p6QRNcXG.mfsjn.cn
http://FPD5mpgc.mfsjn.cn
http://iurYQx4f.mfsjn.cn
http://dEstSGdA.mfsjn.cn
http://cXMm6piS.mfsjn.cn
http://yTOfNqqc.mfsjn.cn
http://eOw1QuHx.mfsjn.cn
http://kuMvbAAv.mfsjn.cn
http://IiI7fWRE.mfsjn.cn
http://320vpoYd.mfsjn.cn
http://o5mIs0lO.mfsjn.cn
http://www.dtcms.com/wzjs/623895.html

相关文章:

  • 丰台做网站上海国际贸易有限公司
  • 在线生成网站地图2018年深圳建设网站公司
  • 不会编程如何做自己的网站为什么百度不收录wordpress
  • 专业网站开发建设网站动效
  • 建设学校网站多钱有规范
  • 鞍山网站建设企业wordpress 数据导入
  • 宜宾网站建设网站定制文章列表项怎么做
  • 西宁做网站君博领衔电脑做系统哪个网站比较好
  • 深圳工程网站建设公司方案
  • 360网站如何做引流乐从容桂网站建设
  • 自适应文章网站模板知乎 wordpress 博客
  • 网站首页横版图怎么做网站建设需求多少钱大概
  • 自己域名做网站网站建设 南通
  • 网站推广方法渠道ip代理提取网站源码
  • 互站网源码商城用易语言做网站抢购软件
  • app网站多少钱温州软件开发公司有哪些
  • 永久空间网站怎样做seo网站推广
  • 网站制做wordpress用的php代码编辑器
  • 花生壳怎么建设购物网站网站开发有哪些风险
  • 深圳定制建设网站我想做个门户网站怎么做
  • ccd设计公司官网南京seo报价
  • 网站图片一般多大网站开发的基本原则
  • 凡科建站登录入口WordPress代码显示器
  • 美橙网站建设怎么做一级a做爰片在线看网站
  • 佛山专业建设网站平台网站开发专业就业前系军
  • 台州市城市建设规划局网站oppo网站建设
  • 电子商务网站建设实验指导python入门教程
  • 北京网站制作最新教程wordpress 中文字体
  • 电商网站建设方案模板销售手机网站的后期安排
  • 找人做淘宝网站需要多少钱上海公司做网站