博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
413. Arithmetic Slices(数组中等差递增子区间的个数)
阅读量:6564 次
发布时间:2019-06-24

本文共 947 字,大约阅读时间需要 3 分钟。

A sequence of number is called arithmetic if it consists of at least three elements and if the difference between any two consecutive elements is the same.

For example, these are arithmetic sequence:

1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9

The following sequence is not arithmetic.

1, 1, 2, 5, 7

 

A zero-indexed array A consisting of N numbers is given. A slice of that array is any pair of integers (P, Q) such that 0 <= P < Q < N.

A slice (P, Q) of array A is called arithmetic if the sequence:

A[P], A[p + 1], ..., A[Q - 1], A[Q] is arithmetic. In particular, this means that P + 1 < Q.

The function should return the number of arithmetic slices in the array A.

 

Example:

A = [1, 2, 3, 4]return: 3, for 3 arithmetic slices in A: [1, 2, 3], [2, 3, 4] and [1, 2, 3, 4] itself. 分析:用动态规划解决问题的关键是找到每个问题的核心公式,并且知道如何存表。例如本题,我们需要一个存储总数的变量,和一个存储差量的变量。 什么是等差数列? A[i]-A[i-1]=A[i-1]-A[i-2]

 

时间复杂度:o(n)                       空间复杂度:o(1)

 

 

转载于:https://www.cnblogs.com/shaer/p/10523952.html

你可能感兴趣的文章
UOJ #449. 【集训队作业2018】喂鸽子
查看>>
biztalk 2010 映射
查看>>
MongoDB数据库
查看>>
时钟设计技巧
查看>>
营业额统计 Treap TYVJ1185
查看>>
html5的float属性超详解(display,position, float)(文本流)
查看>>
js进阶 11-13 jquery如何包裹元素和去除元素外的包裹
查看>>
IMS 相关名词解释
查看>>
Apache 服务器安装和配置相关资料
查看>>
收藏夹
查看>>
蓝桥杯练习 完美的代价(回文)(贪心)
查看>>
SSM-SpringMVC-09:SpringMVC中以继承MutiActionController类的方式实现处理器
查看>>
购物商城--商品详情多级联动
查看>>
CMD和seaJS
查看>>
Windows下Redis数据库管理工具(redis-desktop-manager)安装与配置(图文详解)
查看>>
后台接受数组有问题
查看>>
http 错误代码表
查看>>
暴力/思维 HDOJ 5386 Cover
查看>>
JS创建对象
查看>>
程序员经常加班的真正原因
查看>>