以下是使用 C++ 解决此问题的代码示例: ```cpp #include <iostream> #include <vector> // 函数用于找到最长递增区间 std::pair<int, int> findLongestIncreasingInterval(const std::vector<int>& nums) { int n = nums.size(); int start = 0, end = 0, maxLength = 0, currentStart = 0; for (int i = 0; i < n - 1; ++i) { if (nums[i] <= nums[i + 1]) { // 如果当前元素小于等于下一个元素,继续扩展区间 end = i + 1; } else { // 否则,检查当前区间长度是否更长 int currentLength = end - currentStart + 1; if (currentLength > maxLength) { maxLength = currentLength; start = currentStart; end = end; } // 重新开始新的区间 currentStart = i + 1; } } // 处理最后一个区间 int currentLength = end - currentStart + 1; if (currentLength > maxLength) { maxLength = currentLength; start = currentStart; end = end; } return {start, end}; } int main() { std::vector<int> nums = {1, 2, 3, 2, 4, 5}; std::pair<int, int> result = findLongestIncreasingInterval(nums); std::cout << "最长递增区间的起始位置: " << result.first << ", 结束位置: " << result.second << std::endl; return 0; } ``` 注意逻辑点: 1. 边界情况的处理,例如数组为空或者只有一个元素。 2. 对于区间长度的计算要准确,避免出现偏差。 3. 函数的参数传递和返回值的类型要匹配使用场景。 [2025-02-13 20:47:08 | AI写代码神器 | 460点数解答]