从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
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短