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

Nearest Smaller Values(sorting and searching)

题目描述

Given an array of n integers, your task is to find for each array position the nearest position to its left having a smaller value.

输入

The first input line has an integer n: the size of the array.
The second line has n integers x1,x2,...,xn: the array values.
Constraints
1 ≤ n ≤ 2\times10^5
1 ≤ xi ≤ 10^9

输出

Print n integers: for each array position the nearest position with a smaller value. If there is no such position, print 0.

样例输入
8
2 5 1 4 8 3 2 5
样例输出
0 1 0 3 4 3 3 7
思路分析

1.输入处理:首先读取数组大小n,然后读取数组arr

2.初始化res数组用于存储结果,初始化为0(表示没有找到符合条件的元素)。stack用于维护单调递增的索引栈。

3.单调栈处理

遍历数组中的每个元素。

当栈非空且栈顶索引对应的元素值大于等于当前元素值时,弹出栈顶(因为这些元素不可能成为后续元素的答案)。

如果栈非空,栈顶索引对应的元素即为左边最近的小于当前元素的值,将其索引(加1转换为1-based)存入res[i]

将当前索引压入栈中。

代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,x;
int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin>>n;vector<int>arr(n);for(int i=0;i<n;i++){cin>>arr[i];}vector<int>res(n,0);vector<int>mystack;for(int i=0;i<n;i++){while(!mystack.empty()&&arr[mystack.back()]>=arr[i]){mystack.pop_back();}if(!mystack.empty()){res[i]=mystack.back()+1;}mystack.push_back(i);}for(int i=0;i<n;i++){cout<<res[i]<<" ";}return 0;
}
http://www.lryc.cn/news/614545.html

相关文章:

  • 饿了么零售 sign 分析
  • lmbench在麒麟V10的编译测试
  • 水系热力图:制作化学污染物浓度值热力图
  • 深入理解 Java AWT Container:原理、实战与性能优化
  • vue项目常见BUG和优化注意事项
  • 论文reading学习记录7 - daily - ViP3D
  • Cesium 模型3dtiles压平,任意多面压平,无闪烁
  • 适用于在线3D测量和检测的3D激光轮廓仪
  • 什么是SSL证书颁发机构?
  • 【Layui】调整 Layui 整体样式大小的方法
  • Vue开发的3D全景图效果
  • 微服务的好与坏
  • Spring Boot 常用注解及其功能详解
  • 【LLM实战|langchain、qwen_agent】RAG高级
  • 力扣-238.除自身以外数组的乘积
  • 【ros-humble】2.自定义通讯接口发布者python,qt使用(话题)
  • Java多线程初阶-线程协作与实战案例
  • 在超算中心,除了立式机柜(rack-mounted)还有哪些形式?
  • 【大模型实战篇】部署GPT-OSS-120B踩得坑(vllm / ollama等推理框架)
  • 使用Prometheus + Grafana + node_exporter实现Linux服务器性能监控
  • 大语言模型的过去与未来——GPT-5发布小谈
  • (已解决)Mac 终端上配置代理
  • Document Picture-in-Picture API拥抱全新浮窗体验[参考:window.open]
  • 交流异步电机的定子与转子转速差产生的原因
  • KTH7111-离轴专用芯片,支持自校准,可替MA600和TLE5012,离轴精度可达±0.2
  • 对数函数分段定点实现
  • 单相交流异步电机旋转磁场产生原理
  • 力扣-53.最大子数组和
  • 从零构建TransformerP2-新闻分类Demo
  • Redis:集群(Cluster)