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

短视频推广引流泰安短视频seo

短视频推广引流,泰安短视频seo,深圳数据中心建设公司,表白网页制作软件手机版题目: 给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。要求:时间复杂度为O(N) 思路: 从左往右将序列中的数与栈顶元素比较,如果小于栈顶元素,则弹栈并继…

题目:

给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。要求:时间复杂度为O(N)

思路:

从左往右将序列中的数与栈顶元素比较,如果小于栈顶元素,则弹栈并继续比较,直到栈顶元素大于等于当前的数或栈空。如果当前数小于栈顶元素那么栈顶元素就是当前数左边第一个更小的数(因为栈具有先进先出的性质);如果栈空,那么左边不存在更小的数。接着将当前数入栈,继续遍历序列……

代码:

#include<iostream>
#include<stack>
#include<vector>
using namespace std;vector<int> decStack(vector<int> v1)
{stack<int> s;vector<int> v2;for (auto it = v1.begin(); it != v1.end(); it++){while (!s.empty() && *it < s.top())//小于则出栈继续寻找s.pop();if (s.empty())//如果栈空则不存在v2.push_back(-1);else//如果大于或等于,栈顶元素就是左边第一个比当前元素小的数v2.push_back(s.top());s.push(*it);}return v2;
}int main()
{vector<int> v1 = { 2,1,3,5,4 };vector<int> v2 = decStack(v1);for (auto it = v2.begin(); it != v2.end(); it++){cout << *it << " ";}return 0;
}

原理:单调栈

单调栈即从栈顶至栈底单调递增或者单调递减的栈。常有如下应用场景:

(1)寻找序列数左侧第一个更小值(单调递减栈):方法如上

(2)寻找序列数左侧第一个更大值(单调递增栈):方法与上面类似,一直寻找大于序列数的栈元素,小于的出栈;或者直到栈空。然后将当前序列数入栈,继续遍历……

时间复杂度:

每个序列数至多入栈一次、出栈一次,时间复杂度为O(n)

参考:单调栈详解及其应用-CSDN博客

http://www.dtcms.com/wzjs/548679.html

相关文章:

  • 安徽做网站公司企业服务平台官网入口
  • IP网站登记七牛云 wordpress
  • 如何做专题网站网络建设方案总结
  • 邢台做网站可信赖平台推广是什么
  • 以网络营销为导向的网站建设应注意什么问题wordpress do_action
  • 自己电脑如何做网站服务器网站如何做后台
  • 上海网站制作公司多少钱恢复wordpress修订版本号
  • 苏州网站优化公司购物网站开发用什么软件
  • 网站开发都有什么端深圳市福田建设集团
  • 安徽优化网站贵州建站管理系统
  • c语言做网站吗深圳室内设计工作室排名
  • qq代挂主站网站建设销售外包
  • 高端网站建设 企业网站建站网络广告设计
  • 下载网站 源码里水网站开发
  • 阳泉哪里做网站做网站网站代理怎么找客源
  • 建网站 南京成都seo公司排名
  • 网页设计如何建立网站网站规划的步骤
  • 网站制作 杭州鹰潭手机网站建设
  • 建立公司网站时什么是重要的it软件外包
  • 网站自助建设平台百度长沙最新确诊病例
  • 哪个地区网站建设好wordpress导入主题
  • 网上做环评立项的网站是哪个营销策划方案设计的技巧
  • 2018年网站建设工作总结商丘网站建设推广公司地址
  • 关于做情侣的网站的图片大全沈阳企业网站开发
  • 厦门哪里有教网站建设开福区网站建设论坛
  • 相亲网站做推广的照片是谁陕西交通建设集团西镇分公司网站
  • 没有网站可以做cpc吗店铺logo图片免费生成软件
  • 绥化做网站做网站和微信公众号如何招生
  • 网站改版提交 百度网站建设情况检查报告
  • 卫龙模仿iphone做网站上海服装网站建设