当前位置: 首页 > 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.xdnf.cn/news/1262647.html

相关文章:

  • 3-防火墙
  • 2025年最新Java后端场景题+八股文合集(100w字面试题总结)
  • 华清远见25072班C语言学习day5
  • 基于Spring Boot的Minio图片定时清理实践总结
  • Ideogram:优秀的在线AI绘画平台
  • 【代码随想录day 15】 力扣 110.平衡二叉树
  • HTTP 请求返回状态码和具体含义?200、400、403、404、502、503、504等
  • 机械学习--SVM 算法
  • 用LaTeX优化FPGA开发:结合符号计算与Vivado工具链(二)
  • 华为网路设备学习-28(BGP协议 三)路由策略
  • Android Studio第一个kotlin项目“Hello Android”
  • kafak
  • windows自动获取wsl IP,并开启端口转发。
  • 【代码随想录day 14】 力扣 111.二叉树的最小深度
  • Axure基于中继器实现的组件库(导航菜单、动态表格)
  • Array Description(Dynamic programming)
  • 在发布应用程序内测时如何选择合适的分发上架方式?
  • Git 基础操作笔记(速查)
  • 视频遥测终端机是什么,其工作原理和应用领域
  • 高校合作 | 世冠科技联合普华、北邮项目入选教育部第二批工程案例
  • 01数据结构-图的概念和图的存储结构
  • 数据结构---二叉树(概念、特点、分类、特性、读取顺序、例题)、gdb调试指令、时间复杂度(概念、大O符号法、分类)
  • 【世纪龙科技】数智重构车身实训-汽车车身测量虚拟实训软件
  • 二叉树实现
  • Docker 创建镜像错误记录
  • Redis缓存击穿、穿透雪崩
  • 【NFTurbo】基于DockerCompose一键部署
  • gmssl私钥文件格式
  • 用户组权限及高级权限管理:从基础到企业级 sudo 提权实战
  • 《从零构建大语言模型》学习笔记2,文本数据处理1(以及tiktoken库无法下载gpt2参数,调用get_encoding时SSL超时的解决方法)