
Python
Python
def find_decreasing_intervals(nums):
intervals = []
decreasing_points = []
for i in range(1, len(nums)):
if nums[i] < nums[i-1]:
decreasing_points.append(i) # 如果前一个数比当前数大,就记录这个数的下标
for i in range(len(decreasing_points)-1):
start, end = decreasing_points[i], decreasing_points[i+1]-1 # 区间的起始点和结束点
intervals.append((start, end)) # 把区间加入结果列表中
return intervals
这个函数返回的是一个由元组组成的列表,表示所有的单调减区间。例如:
Python
>>> nums = [3, 2, 5, 4, 1, 6, 7]
>>> find_decreasing_intervals(nums)
[(0, 1), (2, 3), (4, 4)]
上面的例子中,数组 [3, 2, 5, 4, 1, 6, 7] 中包含三个单调减区间:[3, 2]、[5, 4]、[1],它们的起始点和结束点分别为 (0, 1)、(2, 3)、(4, 4)。
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号