用 Python 编写程序从数字列表中查找算术序列的数量?
pythonserver side programmingprogramming更新于 2026/2/15 23:08:17
假设我们有一个名为 nums 的数字列表,我们必须找到长度为 ≥ 的连续算术序列的数量3. 我们知道,等差数列是一串数字,其中一个数字与下一个数字之间的差值相同。
因此,如果输入为 nums = [6, 8, 10, 12, 13, 14],则输出为 4,因为我们有以下等差数列:[6, 8, 10] [8, 10, 12] [6, 8, 10, 12] [12, 13, 14]
要解决这个问题,我们将遵循以下步骤 −
count := 0, ans := 0
for i in range 2 to size of nums, do
if nums[i] - nums[i - 1] 与 nums[i - 1] - nums[i - 2] 相同,则
count := count + 1
否则,
ans := ans + quotient of (count * (count + 1)) / 2
count := 0
如果 count 非零,则
ans := ans + quotient of (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
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

