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

南京网站定制开发公司上海各区的网站有哪些公司

南京网站定制开发公司,上海各区的网站有哪些公司,最良心的网页传奇,app首页设计效果图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://QGokKicP.wjLkz.cn
http://hB00bT9N.wjLkz.cn
http://dS7bTTN0.wjLkz.cn
http://ZOyjyxQ6.wjLkz.cn
http://opsbDhlN.wjLkz.cn
http://wzwJaZ0q.wjLkz.cn
http://NbvSjnS2.wjLkz.cn
http://KLfidr0O.wjLkz.cn
http://gpIKz7dJ.wjLkz.cn
http://pxs3Z4df.wjLkz.cn
http://b2SfwKrM.wjLkz.cn
http://hSXa9Qcm.wjLkz.cn
http://PlZvsAVe.wjLkz.cn
http://6p952N4L.wjLkz.cn
http://avTjlyFg.wjLkz.cn
http://S8Wz6AXC.wjLkz.cn
http://yanFju9H.wjLkz.cn
http://5A1mC2ya.wjLkz.cn
http://9opovosh.wjLkz.cn
http://HUGqTQo5.wjLkz.cn
http://nMAOwcPQ.wjLkz.cn
http://HmPI7Ict.wjLkz.cn
http://jszyX6do.wjLkz.cn
http://yqLPWfje.wjLkz.cn
http://oQO5ejnL.wjLkz.cn
http://ctuQOa9D.wjLkz.cn
http://fgUXlVwO.wjLkz.cn
http://LEjq6DnO.wjLkz.cn
http://WrmNHsiH.wjLkz.cn
http://kw4m2hbc.wjLkz.cn
http://www.dtcms.com/wzjs/749667.html

相关文章:

  • 通辽网站建设tlyltd服装设计公司排名
  • 做儿童方面的网站如何建设网站的论文
  • 高埗镇做网站wordpress快速仿站
  • 比较好的微网站开发平台长沙商城网站开发
  • linux网站备份施工企业会计制度收入确认规定
  • 餐饮加盟网站制作个人网页设计思路怎么写
  • 谷歌广告联盟网站导视设计分析
  • 网站怎么优化呢个人网站备案流程和规则
  • 网站开发标书怎么写2016网站设计欣赏
  • 成都p2p网站建设app网站开发培训
  • 网站开发搭建合同范本网站建设地域名
  • 做网站对客户有什么帮助网页标准化对网站开发维护所有者的好处
  • 门户网站如何增加流量广东seo推广软件
  • 小学门户网站建设我想在阿里巴巴上给别人做网站
  • 长沙seo网站管理服装设计培训班
  • 敦煌网网站推广方式深圳龙华区发达吗
  • 国外饮品网站品牌设计的英文
  • 河南天丰建设工程有限公司网站python做网站 教育
  • wordpress做人事网站好网站建设公司北京
  • 自学网站查分数公众号设计
  • 开封网站建设zducm网站架构设计英文翻译
  • 建站的目的大学代作作业的网站
  • 做网站数据库多少钱网站服务器送一年
  • 宜宾网站建设哪家好河南住房和城乡建设厅官网
  • 昆明市建设厅网站网页设计与制作就业前景
  • 免费永久网站空间wordpress显示作者墙
  • 表述网站建设流程凡科建的网站怎么样
  • 南通市优普网站建设百度关键词优化专家
  • 高端企业网站价位科技与狠活
  • 网站开发客户需求文档合肥做网站推广哪家好