Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาจำนวนลำดับเลขคณิตจากรายการตัวเลขใน 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 ทำ

    • ถ้า 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