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

东莞市外贸网站建设平台成品超市网站

东莞市外贸网站建设平台,成品超市网站,seo广告投放是什么意思,沂水网站优化503. 下一个更大元素 II(中等) 方法:单调栈 「 对于找最近一个比当前值大/小」的问题,都可以使用单调栈来解决。栈可以很好的保存原始位置,最近影射栈顶。题目要求更大,因此更大即解–出栈,更小…

503. 下一个更大元素 II(中等)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方法:单调栈

  • 「 对于找最近一个比当前值大/小」的问题,都可以使用单调栈来解决。
  • 栈可以很好的保存原始位置,最近影射栈顶。题目要求更大,因此更大即解–出栈,更小则入栈。
  • 「 栈内存放的永远是还没更新答案的下标。⌟

思路

  • 首先,创建一个大小为n的答案数组ans,初始化为-1。

  • 然后,使用一个栈s来存储数组中的索引。 从数组的第一个元素开始遍历,将第一个元素的索引压入栈中。

  • 接着遍历数组的剩余元素。对于每个元素,我们将栈顶元素与当前元素进行比较。 如果栈顶元素小于当前元素,则说明栈顶元素的下一个更大元素就是当前元素。 我们将栈顶元素的下一个更大元素设置为当前元素,并将栈顶元素出栈。 重复这个过程,直到栈为空或者栈顶元素不小于当前元素。

  • 最后,将当前元素的索引压入栈中,以便在后面的元素中找到它的下一个更大元素。 当遍历完整个数组后,我们就得到了所有元素的下一个更大元素。

  • 两次遍历:由于目标要么在当前元素之前,要么在之后,因此两次遍历一定能覆盖到。

代码

class Solution {
public:vector<int> nextGreaterElements(vector<int>& nums) {int n = nums.size();vector<int> ans(n, -1);// vector<int> flag(n, 0);stack<int> s;s.push(0);for(int i=1;i <= 2*n-2;++i){while(!s.empty() && (nums[s.top()] < nums[i%n])){ans[s.top()] = nums[i%n];s.pop();}s.push(i%n);}return ans;}
};
http://www.yayakq.cn/news/43730/

相关文章:

  • 恩施网站建设网站流量多少
  • 网站模板免费下载云资源动画师工资一般多少
  • 建设个人网站的参考网站及文献网站维护及更新方案
  • 网站投注员怎么做网站如何做支付宝接口
  • 域名交易asp.net 网站淘宝客网站建设难度大吗
  • 做网站应该学什么语言深圳手机医疗网站建设
  • 推广网站方案广州谷歌seo
  • 后台网站模板 htmlai网站大全
  • 门户网站栏目维护建设方案南京小程序开发网站建设
  • 安徽省建设法制协会网站重庆seo结算
  • 网站建设及推广好做吗网站建设优化服务行情
  • 做网站可以做哪些方面的国际贸易平台排名
  • 手机网站建设一般要多少钱商业网站网址
  • app网站的优点企业为啥要做网站
  • 惠州建设工程质量监督站网站安徽招标网官网
  • 网站开发学什么好网站制作字体
  • 网站建设报价表格成都网站制作推来客网站系统好吗
  • 网站标签是什么网站建设佰首选金手指四
  • dede中英文网站云主机怎么建网站
  • 建设部网站中淼工程有限公司网站建设中 目录怎么做更好
  • 无极网站免费观看网站排名优化推广厦门
  • 网站制作 符合百度两个域名同一个网站做优化
  • 校园网站建设的意义wordpress文件夹里图片无法获取
  • 优化网站入口页面的四个维度泰安市人才交流服务中心
  • 网站建设公司公司介绍除了速卖通还有什么网站做外贸
  • 那个公司可以做网站金光华网站建设
  • 网站建设常用的方法孟村住房建设局网站
  • 门户网站开发投标文件湖南企业建网站公司
  • 漳州微网站建设哪家好网站最好服务器
  • asp网站安装到空间如何上传文件到自己的网站