当前位置: 首页 > news >正文

移动应用开发专业月薪邢台做网站建设优化制作公司金信

移动应用开发专业月薪,邢台做网站建设优化制作公司金信,新乡网站建设加盟电话,广东省深圳市龙华区普通单调栈模型 首先介绍单调栈模版 这个图里有5个数字,我们从右往左看,第一个数字是4,第二个数字是7,数字4小于数字7,所以7这个数之前的下一个更大值永远不会是4,那么此时4在数组里就相当于没有用了,所以…

普通单调栈模型

首先介绍单调栈模版

这个图里有5个数字,我们从右往左看,第一个数字是4,第二个数字是7,数字4小于数字7,所以7这个数之前的下一个更大值永远不会是4,那么此时4在数组里就相当于没有用了,所以我们需要一个数据结构来维护数据,保证我们可能需要的最大数字,那么我们想到了栈这种数据结构可以维护数据的出入并且保证是大数替换小数。

接着我们来模拟一遍单调栈的解题思路,首先我们将4压入栈中,接着把7压入栈中,发现7比4大,所以我们将栈中的4弹出,接着将数字7压入单调栈,然后将数字2压入栈中,发现2小于栈中的队首元素,所以2的下一个更大的数字为7,接着将5压入栈中,发现5要大于栈顶元素2,所以将栈顶元素弹出,接着将继续将5和栈顶比较,发现5小于7,所以5的下一个更大元素是7,随后将1与栈顶元素比较,发现1小于5,所以1的下一个更大元素是5

接下来给出模版:

#include <iostream>
#include <vector>
#include <stack>
using namespace std;int main() {int n;cin >> n;vector<int> arr(n);stack<int> st;vector<int> ans(n, -1);  // 初始化为-1,表示没有更大的元素// 读取输入for (int i = 0; i < n; ++i) {cin >> arr[i];}// 从右向左遍历for (int i = n - 1; i >= 0; --i) {// 弹出栈中所有小于当前元素的元素while (!st.empty() && arr[i] >= arr[st.top()]) {st.pop();}// 如果栈不为空,栈顶就是下一个更大元素的位置if (!st.empty()) {ans[i] = st.top();}// 将当前索引入栈st.push(i);}// 输出结果(这里输出的是索引,也可以改成输出值)for (int i = 0; i < n; i++) {cout << ans[i] << " ";}return 0;
}

        典型例题是力扣的739. 每日温度 - 力扣(LeetCode)

按照上述模版给出答案

class Solution {
public:vector<int> dailyTemperatures(vector<int>& temperatures) {int n=temperatures.size();vector<int> ans(n);stack<int> st;for(int i=n-1;i>=0;i--){int t =temperatures[i];while(!st.empty()&&t>=temperatures[st.top()]){st.pop();}if(!st.empty()){ans[i]=st.top()-i;}st.push(i);}return ans;}
};

本文参考了力扣的灵山爱抚茶的题单分享|【算法题单】单调栈(矩形面积/贡献法/最小字典序)- 讨论 - 力扣(LeetCode)

http://www.dtcms.com/a/425349.html

相关文章:

  • 有哪些做海报的网站天津网站搜索引擎优化
  • 四川建设银行手机银行下载官方网站公司怎么注册邮箱帐号
  • 找人做试管婴儿的网站网页版梦幻西游宠物
  • 云空间布置网站建设工程施工合同司法解释一二三
  • 网站开发时间进度表模板下载黄页推广网页
  • 网站策划方案1500字广州网站开发 d广州亦客网络
  • 西安网站推广公司电话上海小程序定制公司
  • 上海猎头公司收费标准郑州企业网站优化公司
  • 可以做基因通路分析的网站企业广告
  • 合肥企业建网站wordpress去底部版权信息
  • 网站两个域名手绘风格的网站
  • 半商城性质网站源代码广州小程序设计
  • 网站建设牜金手指花总十四网站建设资金
  • 东莞网站建议网页升级紧急大通知拿笔记本记好
  • 浙江省网站重点学科建设上饶网站建设推广
  • 吕梁做网站公司学校建设微网站的方案设计
  • 网站商品管理功能百度推广怎么推广
  • 站长工具关键词排名怎么查php毕业设计代做网站
  • DINOv3技术解析与跨领域应用实践
  • 风铃网站代做aspnet网站开发实例教程课件
  • 怎么在网站上添加qq前端网站开发流程入门
  • 运城网站建设运城天气建设银行 钓鱼网站
  • 长春网站长春网络推广建设四站合一网站建设公司
  • 怎么在网站文本框内做超连接网站建设招标 报告
  • 工厂做哪个网站好网络服务提供者知道或者应当知道
  • dw用表格做网站长安网站建设流程
  • wordpress 评论加星温州seo关键词优化
  • 网站制作培训学校sh域名做的好的网站
  • 详细描述建设网站网站建设与网页设计心得体会
  • 如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘flax’ 问题