以下是使用 Python 解决此问题的代码示例: ```python def find_longest_interval(arr): max_length = 0 # 记录最长区间的长度 start = 0 # 记录最长区间的起始位置 curr_length = 1 # 记录当前区间的长度 curr_start = 0 # 记录当前区间的起始位置 for i in range(len(arr) - 1): if arr[i] <= arr[i + 1]: # 如果当前元素小于等于下一个元素 curr_length += 1 # 区间长度增加 else: # 否则 if curr_length > max_length: # 如果当前区间长度大于最长区间长度 max_length = curr_length # 更新最长区间长度 start = curr_start # 更新最长区间起始位置 curr_length = 1 # 重置当前区间长度 curr_start = i + 1 # 更新当前区间起始位置 # 处理最后一个区间 if curr_length > max_length: max_length = curr_length start = curr_start return start, start + max_length - 1 # 返回最长区间的起始和结束位置 # 测试示例 arr = [1, 2, 3, 2, 4, 5] print(find_longest_interval(arr)) ``` 额外需要注意的逻辑点: 1. 边界情况,如序列长度为 1 时的处理。 2. 对于返回的区间,要确保其在合法的索引范围内。 3. 对于输入的序列,要考虑其元素的数据类型和可能的异常值。 [2025-02-13 20:46:43 | AI写代码神器 | 370点数解答]