首页 > 编程知识 正文

单调栈算法,单调栈leetcode

时间:2023-05-05 04:59:00 阅读:34582 作者:2558

【题目描述】

给出长度为n的整数数列,输出小于每个数左边第一个的数,如果不存在,输出1。【输入格式】

在第一行中输入表示数列长度的整数n。

在第二行中,输入表示数列各元素值的n个整数。【输出格式】

在包含n个整数的一行中,第I个个数表示第I个个数的左边的第一个小于第一个的数目,且如果不存在,则输出1。【数据范围】

1N100000

1数列中的元素10000003358 www.Sina.com /

输入示例:

5

3 4 2 7 5

输出示例:

-1 3 -1 2 2 【样例】

显然,单调堆栈是解决“下一个更大元素”问题的最佳数据结构,因此该问题最好用单调堆栈来解决。【算法分析】

# include bits/stdc.husingnamespacestd; 常数上限=100010; int n; int main () {cinn; 堆栈int STK; for(intI=0; in; I ) ) {int x; cinx; while (! STK.empty(STK.top )=x (STK.pop ); cout (! stk.empty (? STK.top(:-1 ) '; STK.push(x; }/* input :534275 output :-13-12 * /

【算法代码】

3359 blog.csdn.net/lucky 52529/article/details/89155694

3359 MP.weixin.QQ.com/s/oqjxzbfkfbt6ut _-1b2s _ q

3359 blog.csdn.net/sinat _ 30467885/article/details/89446950

3359 blog.csdn.net/QQ _ 45836635/article/details/104415823

3359 blog.csdn.net/jacksonmhlk/article/details/114598876

3359 blog.csdn.net/u 011815404/article/details/86896303

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。