从Python中的数字列表中查找算术序列数的程序?
假设我们有一个称为nums的数字列表,我们必须找到长度≥3的连续算术序列的数量。众所周知,算术序列是一个数字列表,其中一个数字与下一个数字之间的差是相同的。
因此,如果输入类似于nums=[6、8、10、12、13、14],则输出将为4,因为我们具有以下算术序列:[6、8、10][8、10,12][6、8、10、12][12、13、14]
为了解决这个问题,我们将遵循以下步骤-
计数:=0,ANS:=0
对于范围在2到nums的i
ans:=ans+(count*(count+1))/2的商
计数:=0
数:=数+1
如果nums[i]-nums[i-1]与nums[i-1]-nums[i-2]相同,则
除此以外,
如果计数不为零,则
ans:=ans+(count*(count+1))/2的商
返回ans
让我们看下面的实现以更好地理解:
示例
class Solution:
def solve(self, nums):
count = 0
ans = 0
for i in range(2, len(nums)):
if nums[i] - nums[i - 1] == nums[i - 1] - nums[i - 2]:
count += 1
else:
ans += (count * (count + 1)) // 2
count = 0
if count:
ans += (count * (count + 1)) // 2
return ans
ob = Solution()nums = [6, 8, 10, 12, 13, 14]
print(ob.solve(nums))输入值
[6, 8, 10, 12, 13, 14]
输出结果
4
热门推荐
10 送别的祝福语朋友简短
11 新娘生孩子祝福语简短
12 清新唯美生日祝福语简短
13 学生老师离职祝福语简短
14 对当兵的祝福语简短
15 喝酒祝福语大全简短新颖
16 英文节日祝福语简短唯美
17 厨房祝福语简短100句
18 晋城春节祝福语简短英文