栈——单调栈

news2024/11/25 2:19:46

题目描述

给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。 

输入格式

第一行包含整数 N (1≤N≤10^5),表示数列长度。
第二行包含 N 个整数,表示整数数列。1≤ai≤10^9。

输出格式

共一行,包含 N 个整数,其中第 i 个数表示第 i 个数的左边第一个比它小的数,如果不存在则输出 −1。

输入样例

5
3 4 2 7 5

输出样例

-1 3 -1 2 2

注释版代码

//此题要求解出每个数左边第一个比它小的数
//我们把左边已经输入的数存放到一个栈中,因为栈的特性是后进先出
#include<iostream>
using namespace std;
const int N=100010;
int n;
int stk[N],tt;
int main()
{
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		int x;
		scanf("%d",&x);
		while(tt&&stk[tt]>=x)
		{
			tt--;//tt不为0,且stk[tt]>=x,也就是stk里面这个数大于目标值,他不应该在里面,弹出即可
		}
		if(tt) printf("%d ",stk[tt]);//如果上述条件都满足了,那说明stk里面的值就是第一个小于x的值,输出
		else printf("-1 ");//如果都弹出去完了,tt为0了,也就说明stk里面为空,空的话就不用就一定没有,输出-1
		stk[++tt]=x;//然后将x放进栈中
	}
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2212304.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git规范化开发

特性分支开发 以前使用git基本都是随心所欲的用&#xff0c;commit的信息比较随便&#xff0c;所以有时git分支结构有时显得混乱&#xff0c;最近标准化开发的过程中接触了特性分支开发。 何为特性分支&#xff0c;按我的理解&#xff0c;就是每一次代码的修改提交&am…

Linux操作系统学习——常见指令集合

本篇博客是对于linux系统学习的初步认识&#xff0c;了解一些常见指令以及基础知识 ls指令 ls/ls -l :只显示文件名/显示更多文件的属性&#xff0c;此时注意最后一行开头位置字母为d就代表显示的是目录的文件属性&#xff0c;还有一点就是&#xff1a;ls -l 默认查看当前目录…

解锁5 大无水印热门短视频素材库

想让你的抖音视频更出彩吗&#xff1f;想知道那些爆款视频的素材源头吗&#xff1f;快来了解以下 5 个超棒的视频素材下载平台。 蛙学网 国内的视频素材佼佼者&#xff0c;有大量 4K 高清且无水印的素材&#xff0c;自然风光、情感生活等类别任你选&#xff0c;不少还免费&…

利用 NIM 平台上的生成式 AI模型,根据描述生成图片

以下是一个使用 NIM 平台的生成式 AI模型构建的简单 demo。这个 demo 实现了文生图&#xff0c;通过解析用户需求来判断是否需要进行画图。这里使用 Python 和 FastAPI框架来搭建一个简单的 web 应用。 项目结构 work/ │ ├── images/ ├── chat.py └── chat.html 安…

PostgreSQL技术内幕14:从插件来看PG扩展性-FDW插件

文章目录 0.简介1.FDW介绍2.使用方式2.1 创建过程2.1.1 创建插件2.1.2 创建 Foreign Server2.1.3 创建 User Mapping(外部服务器映射&#xff0c;本地文件可以不需要&#xff09;2.1.4 创建外部表 2.2 查询流程 3.源码分析3.1 扩展接口分析3.2 和其他部分关联3.2.1 和计划的关联…

AI智能助理在企业内部的8大应用场景

一、概述 1.1 AI智能助理核心功能概览 1.2 AI智能助理业务应用价值 二、详解 AI智能助理在企业内部办公方向的应用可以极大地提高工作效率、优化流程&#xff0c;并为员工提供更加个性化的支持。以下是一些具体的业务场景&#xff1a; 日程管理和会议安排&#xff1a; 自动安…

现今 CSS3 最强二维布局系统 Grid 网格布局

深入学习 CSS3 目前最强大的布局系统 Grid 网格布局 Grid 网格布局的基本认识 Grid 网格布局: Grid 布局是一个基于网格的二位布局系统&#xff0c;是目前 CSS 最强的布局系统&#xff0c;它可以同时对列和行进行处理&#xff08;它将网页划分成一个个网格&#xff0c;可以任…

Java读取PDF后做知识库问答_SpringAI实现

​​​​​​​​​​​​​​ 核心思路&#xff1a; 简单来说&#xff0c;就是把PDF文件读取并向量化&#xff0c;然后放到向量存储里面&#xff0c;再通过大模型&#xff0c;来实现问答。 RAG&#xff08;检索增强生成&#xff09;介绍&#xff1a; 检索增强生成&#x…

UE5 猎户座漂浮小岛 02 模型 地形

UE5 猎户座漂浮小岛 02 模型 地形 1.模型 1.1 导入 1.2 统一模型比例 1.3 添加碰撞体 2.地形 2.1 地 2.2 山体 2.3 海洋 2.4 花草

特征提取:传统算法 vs 深度学习

特征提取&#xff1a;传统算法 vs 深度学习 特征点是图像中梯度变化较为剧烈的像素&#xff0c;比如&#xff1a;角点、边缘等。FAST&#xff08;Features from Accelerated Segment Test&#xff09;是一种高速的角点检测算法&#xff1b;而尺度不变特征变换SIFT&#xff08…

使用DataX同步hive数据到MySQL

目录 1、组件环境 2、安装datax 2.1、下载datax并解压 3、安装datax-web 3.0、下载datax-web的源码&#xff0c;进行编译 3.1、在MySQL中创建datax-web元数据 3.2、安装data-web 3.2.1执行install.sh命令解压部署 3.2.1、手动修改 datax-admin配置文件 3.2.2、手动修改…

【python实操】python小程序之文件操作的输出指定格式数据以及异常捕获

引言 python小程序之文件操作的输出指定格式数据以及异常捕获 文章目录 引言一、文件操作之输出指定格式JSON1.1 题目1.2 代码1.3 代码解释1.3.1 总结 二、异常2.1 概念2.1.1 基本语法2.1.1.1 try...except2.1.1.2 try...except...else2.1.1.3 try...except...finally2.1.1.4 t…

量化选股:原理与实战指南(二)

🌟作者简介:热爱数据分析,学习Python、Stata、SPSS等统计语言的小高同学~🍊个人主页:小高要坚强的博客🍓当前专栏:《Python之量化交易》🍎本文内容:量化选股:原理与实战指南(二)🌸作者“三要”格言:要坚强、要努力、要学习 目录 引言 一、价值类因子简介 …

position定位静态定位/绝对定位/相对定位

1.静态定位static&#xff1a;按照标准流进行布局 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>D…

基于springboot Vue3的两种图形验证码工具——vue3-puzzle-vcode纯前端防人机图形滑动验证码和kaptcha图片文字验证码

一.vue3-puzzle-vcode Vue 纯前端的拼图人机验证、右滑拼图验证 官网&#xff1a; vue3-puzzle-vcode - npm (npmjs.com)https://www.npmjs.com/package/vue3-puzzle-vcode 1.1基本使用步骤 安装 npm install vue-puzzle-vcode --save 简单例子 点击开始验证按钮弹出验证弹…

linux从入门到精通-从基础学起,逐步提升,探索linux奥秘(十一)--rpm管理和计划任务

linux从入门到精通-从基础学起&#xff0c;逐步提升&#xff0c;探索linux奥秘&#xff08;十一&#xff09;–rpm管理和计划任务 一、rpm管理&#xff08;重点&#xff09; 1、rpm管理 作用&#xff1a; rpm的作用类似于windows上的电脑管家中“软件管理”、安全卫士里面“…

【机器学习】集成学习|Boosting|随机森林|Adaboost|GBDT梯度提升树|XGBoost 极限梯度提升树 及案例实现

文章目录 集成学习集成学习思想概述集成学习分类Bagging 思想Boosting思想Bagging 和 Boosting 的对比 随机森林算法随机森林实现步骤随机森林算法apiAPI 代码实现 Adaboost 算法实现步骤整体过程实现 算法推导Adaboost 案例 葡萄酒数据 GBDT (梯度提升树)提升树 BDT (Boosting…

WPF 中的 StackPanel 详解

Windows Presentation Foundation&#xff08;WPF&#xff09;是微软开发的一种用于创建桌面客户端应用程序的用户界面框架。WPF 提供了一套丰富的控件和布局能力&#xff0c;使得开发者可以轻松构建出功能强大、视觉优美的用户界面。在 WPF 的布局系统中&#xff0c;StackPane…

Git上传命令汇总

进入企业&#xff0c;每日需要上传执行用例记录到gitlab平台上&#xff0c;本文记录了常用git上传命令&#xff0c; 并用github演示。 1、本地建立分支&#xff0c;克隆远程仓库 在gitlab中&#xff0c;每个人需要创建自己的分支&#xff0c;一般以自己的名字命名&#xff0c;…