牛客 奇怪的排序问题(单调栈/遍历)
文章目录
- 1. 题目
- 2. 解题
1. 题目
链接:https://ac.nowcoder.com/acm/contest/10166/B
来源:牛客网
操场上有n个人排成一队,这n个人身高互不相同,可将他们的身高视为一个1到n的排列。
这时需要把队伍变成升序,也就是从矮到高排序。
每次可以选择一个人,让这个人和在他身后的人比高矮,如果比对方高,则交换位置并继续下一次比较,直到比对方矮或者已经在队尾。
现在给出数n和一个1到n的排列,求最少的选择次数,使队伍变为升序。
示例1
输入
4,[4,1,2,3]
返回值
1备注:
n<=10^6
数据包含一个整数n和一个含有n个元素的数组,表示从队头到队尾的人的身高。
输出一个整数表示答案。
2. 解题
- 单调栈,当栈顶的身高 比 当前的大 ,需要移动一次
class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可* * @param n int整型 * @param a int整型vector * @return int整型*/int wwork(int n, vector<int>& a) {// write code hereint ans = 0;stack<int> s;for(int i = 0; i < n; i++){while(!s.empty() && s.top() > a[i]){ans++;s.pop();}s.push(a[i]);}return ans;}
};
- 直接反向遍历,当前身高比后面最小的大,就需要移动一次
class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可* * @param n int整型 * @param a int整型vector * @return int整型*/int wwork(int n, vector<int>& a) {// write code hereint ans = 0, MIN = INT_MAX;for(int i = n-1; i >= 0; --i){if(a[i] > MIN)ans++;MIN = min(MIN, a[i]);}return ans;}
};
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
牛客 奇怪的排序问题(单调栈/遍历)相关推荐
- 牛客网——奥运排序问题
题目描述 按要求,给国家进行排名. 输入描述: 有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号从0到N-1. 第二行开始的N行给定国家或地区的奥运金牌数,奖牌数,人口数(百万). 接下来 ...
- 仿牛客网社区项目 全栈总结
学习仿牛客网社区项目 代码&资源 各章节总结 第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 争取让每个知识点都有链接可点 项目总结 网站架构图 常见面试题 MySQL Red ...
- #牛客网 吐泡泡 (栈)
题目描述 小鱼儿吐泡泡,嘟嘟嘟冒出来.小鱼儿会吐出两种泡泡:大泡泡"O",小泡泡"o". 两个相邻的小泡泡会融成一个大泡泡,两个相邻的大泡泡会爆掉. (是的你没 ...
- 牛客训练赛10 B栈和排序(栈)
题目大意: 给你一个1->n的排列和一个栈,入栈顺序给定 你要在不打乱入栈顺序的情况下,对数组进行从大到小排序 当无法完全排序时,请输出字典序最大的出栈序列 因为要按照字典序输出,直接做一遍循环 ...
- 牛客 - 奇怪的背包问题增加了(贪心)
题目链接:点击查看 题目大意:中文题意 题目分析: 代码: #include<iostream> #include<cstdio> #include<string> ...
- 用Python实现栈---1顺序表:牛客题解 AB1 【模板】栈
题目 牛客 AB1 [模板]栈 描述 请你实现一个栈. 操作: push x:将 加x x\ x 入栈,保证 x x\ x 为 int 型整数. pop:输出栈顶,并让栈顶出栈 top:输出栈顶,栈顶 ...
- 牛客网|面试必刷TOP101
BM42 用两个栈实现队列_牛客题霸_牛客网 (nowcoder.com) 由于栈是先进后出,队列是先进先出的,所以需要两个栈来倒来倒去 将数据都push进入 stack1,pop的时候将stack1 ...
- 【代码随想录】Day58~Day60单调栈
单调栈的作用 就是用一个栈来记录我们遍历过的元素 单调栈里存放元素下标i就可以了,如果要使用对应元素,直接T[i]就可以获取到 从栈头到栈尾-递增的话-栈里要加入一个元素i的时候,才知道栈顶元素在数组 ...
- 【2019牛客暑期多校训练营(第二场) - H】Second Large Rectangle(单调栈,全1子矩阵变形)
题干: 链接:https://ac.nowcoder.com/acm/contest/882/H 来源:牛客网 题目描述 Given a N×MN \times MN×M binary matrix. ...
最新文章
- java 泛型反射_Java使用反射来获取泛型信息示例
- 如何用openvr api打开vive前置摄像头
- kali下Wreckuests | DDOS Atacks With HTTP-Flood
- GDCM:gdcm::Trace的测试程序
- 中国数学会副理事长田刚委员:建议从四个方面加强教师队伍建设
- Android SDK Manager下载详解
- jconsole是否可以在生产环境使用_jconsole使用
- 特斯拉皮卡,会大卖吗?
- java 开发规约插件_阿里巴巴Java开发规约IDE插件
- excel服务器2010网站,勤哲Excel服务器2010高级企业版完整安装包
- JavaScript培训
- abb变频器dp适配器说明书_ABB变频器ACS510_CN使用说明书.pdf
- 下载列表失败_Mac配置的Motrix,高速下载百度云
- idea 导入的模块 右下角没有蓝色方块
- HTML文字阴影火焰,本教程火焰字效果非常逼真
- 三峡学院计算机调剂,重庆三峡学院2019考研调剂信息公告
- 地理地貌3D打印案例
- netstat -an
- Oracle的表简单介绍
- 采集绿盾网的10个经典方法
热门文章
- oracle rds 运维服务_从运维的角度分析使用阿里云数据库RDS的必要性–你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库...
- python实现猴子爬山算法
- Django/Flask/Tornado三大web框架性能分析
- xcode8 崩溃问题
- java的安装和配置
- cm0中断优先级_转:第13章 FreeRTOS任务优先级修改及其分配方案
- 信号集操作函数,信号未决、阻塞、递达
- 最近重构公司消息服务的架构设计
- 日志配置(springboot、mybatis、Lombok)
- 隐藏Android下的虚拟按键