Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Đếm lần thay đổi hướng dãy số trong Python

Cho danh sách nums, đếm số lần dãy thay đổi từ tăng sang giảm hoặc giảm sang tăng (đỉnh/thung lũng).

Ví dụ: [2, 4, 10, 18, 6, 11, 13] → 2 (thay đổi tại 10: tăng→giảm, tại 6: giảm→tăng).

Các bước giải quyết

  • count = 0
  • Duyệt i từ 1 đến len(nums)-2:
    • Nếu nums[i-1] < nums[i] > nums[i+1] hoặc nums[i-1] > nums[i] < nums[i+1]: count += 1
  • Trả về count

Ví dụ mã Python

class Solution:
    def solve(self, nums):
        count = 0
        for i in range(1, len(nums) - 1):
            if nums[i-1] < nums[i] > nums[i+1] or nums[i-1] > nums[i] < nums[i+1]:
                count += 1
        return count

ob = Solution()
print(ob.solve([2, 4, 10, 18, 6, 11, 13]))

Đầu vào

[2, 4, 10, 18, 6, 11, 13]

Đầu ra

2