Python程式:如何查詢列表中算術序列的數量?
假設我們有一個名為 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 + (count * (count + 1)) / 2 的商
count := 0
if count 不為零,則
ans := ans + (count *(count + 1)) / 2 的商
return 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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP