单调栈
# 单调栈

输入数据:
[3,4,1,5,6,2,7]
输出数据:
[[-1,2],[0,2],[-1,-1],[2,5],[3,5],[2,-1],[5,-1]]
# 你的代码
#include <iostream>
using namespace std;
const int N = 1e5+10; // 定义最大数组大小
int main() {
int nums[N] = {1, 2, 1, 3, 2, 2, 4}; // 输入数组
int n = 7; // 数组大小
int result[N][2]; // 结果数组,存储[l, r]
for (int i = 0; i < n; ++i) {
result[i][0] = -1;
result[i][1] = -1;
}
for (int i = 0; i < n; ++i) {
// 向左查找
for (int j = i - 1; j >= 0; --j) {
if (nums[j] == nums[i]) {
result[i][0] = j; // 找到左侧重复元素的位置
break; // 找到后退出
}
}
// 向右查找
for (int j = i + 1; j < n; ++j) {
if (nums[j] == nums[i]) {
result[i][1] = j; // 找到右侧重复元素的位置
break; // 找到后退出
}
}
}
// 打印结果
for (int i = 0; i < n; ++i) {
cout << "[" << result[i][0] << ", " << result[i][1] << "] ";
}
cout << endl;
return 0;
}