首页 > 试题广场 >

单调栈结构(进阶)

[编程题]单调栈结构(进阶)
  • 热度指数:12013 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个可能含有重复值的数组 arr,找到每一个 i 位置左边和右边离 i 位置最近且值比 arr[i] 小的位置。返回所有位置相应的信息。

输入描述:
第一行输入一个数字 n,表示数组 arr 的长度。
以下一行输入 n 个数字,表示数组的值


输出描述:
输出n行,每行两个数字 L 和 R,如果不存在,则值为 -1,下标从 0 开始。
示例1

输入

7
3 4 1 5 6 2 7

输出

-1 2
0 2
-1 -1
2 5
3 5
2 -1
5 -1

备注:

头像 岩之痕
发表于 2019-08-22 13:59:45
单调栈 O(N) 两次遍历 创建一个栈来存各个值的下标。从左往右扫描数组,在将A[i]加入栈之前,将所有大于等于A[i]的元素出栈,此时栈顶元素就是左侧第一个小于A[i]的数的下标,在记录答案之后将i入栈,继续向右扫描。在此操作下,栈中元素一直保持单调递增,故称单调栈。 正确性证明:假设j < 展开全文
头像 whereabouts¤
发表于 2019-08-18 15:47:28
这是一道较为入门的模拟题,新手们都可以拿这道题练手 看了题目后我们不难发现,它把时限开到了2s,并且1≤n≤1000000,如果暴力去模拟,肯定会超时 大家的思路一般是不是 先读入 用一个循环枚举i,然后再套一个循环求比arr[ i ]小的靠左位置 用同样的方法来求靠右的位置 这样提交了在 展开全文
头像 TonyBryant
发表于 2024-01-21 11:50:34
//单调栈结构(进阶) //https://www.nowcoder.com/practice/2a2c00e7a88a498693568cef63a4b7bb #include<bits/stdc++.h> using namespace std; const int N = 1 展开全文
头像 想玩飞盘的菜鸡渴望wlb
发表于 2024-03-19 19:20:49
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWr 展开全文
头像 想玩飞盘的菜鸡渴望wlb
发表于 2024-03-19 19:22:38
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWr 展开全文
头像 laglangyue
发表于 2020-07-31 23:04:46
思路 单调栈:一次遍历、两次遍历然而单调栈只能过75%,,隔壁中心扩展居然能过??????修改输入,用buffer,90%-95%, 函数版 import java.util.*; public class Main{ public static int[][] help(int[] in) 展开全文
头像 牛客467980758号
发表于 2023-08-06 16:51:38
参考左神的代码,使用两个栈,一个栈stack1是一个递增栈,并且里面可以存储重复值。另一个栈stack2是存储每一系列相同值的最后一个下标,用这种方式就可以区分左面小于当前值的下标是多少。 import java.util.*; import java.io.*; public class Mai 展开全文
头像 牛客204404383号
发表于 2023-12-26 12:27:50
import sys MAXN = 1000001 arr = [0] * MAXN stack = [0] * MAXN ans = [[-1, -1] for _ in range(MAXN)] def compute(n, arr, stack, ans): r = 0 f 展开全文
头像 牛客961762812号
发表于 2021-10-10 23:40:06
#include <iostream> #define MAXNUM 1000001 int main() { int numlen = 0; long arr[1000001], arrl[1000001], arrr[1000001]; long i=0, 展开全文