สมมติว่าเรามีรายการของตัวเลขที่เรียกว่า 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 ทำ
-
ถ้า nums[i] - nums[i - 1] เหมือนกับ nums[i - 1] - nums[i - 2] ดังนั้น
-
นับ :=นับ + 1
-
-
มิฉะนั้น
-
ans :=ans + ผลหารของ (นับ * (นับ + 1)) / 2
-
นับ :=0
-
-
-
หากการนับไม่เป็นศูนย์ แสดงว่า
-
ans :=ans + ผลหารของ (นับ *(นับ + 1)) / 2
-
-
กลับมาอีกครั้ง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น:
ตัวอย่าง
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