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
itừ 1 đếnlen(nums)-2:- Nếu
nums[i-1] < nums[i] > nums[i+1]hoặcnums[i-1] > nums[i] < nums[i+1]:count += 1
- Nếu
- 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