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, 9 7, 7, 7, 7 3, -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.
Subscribe to see which companies asked this question
class Solution(object):
def numberOfArithmeticSlices(self, A):
if len(A) < 3:
return 0
res = 0
i = 2
l = 1
while i < len(A):
if (A[i-1] - A[i-2]) == (A[i] - A[i-1]):
res += l
l += 1
else:
l = 1
i += 1
return res

本文介绍了一种用于寻找数组中所有等差序列切片数量的算法。等差序列需包含至少三个连续元素且每两个相邻元素之间的差值相同。文章提供了一个Python实现示例,并解释了如何正确识别符合要求的等差序列。
168万+

被折叠的 条评论
为什么被折叠?



