文章目录

  • 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阿明),一起加油、一起学习进步!

牛客 奇怪的排序问题(单调栈/遍历)相关推荐

  1. 牛客网——奥运排序问题

    题目描述 按要求,给国家进行排名. 输入描述: 有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号从0到N-1. 第二行开始的N行给定国家或地区的奥运金牌数,奖牌数,人口数(百万). 接下来 ...

  2. 仿牛客网社区项目 全栈总结

    学习仿牛客网社区项目 代码&资源 各章节总结 第一章 第二章 第三章 第四章 第五章 第六章 第七章 第八章 争取让每个知识点都有链接可点 项目总结 网站架构图 常见面试题 MySQL Red ...

  3. #牛客网 吐泡泡 (栈)

    题目描述 小鱼儿吐泡泡,嘟嘟嘟冒出来.小鱼儿会吐出两种泡泡:大泡泡"O",小泡泡"o". 两个相邻的小泡泡会融成一个大泡泡,两个相邻的大泡泡会爆掉. (是的你没 ...

  4. 牛客训练赛10 B栈和排序(栈)

    题目大意: 给你一个1->n的排列和一个栈,入栈顺序给定 你要在不打乱入栈顺序的情况下,对数组进行从大到小排序 当无法完全排序时,请输出字典序最大的出栈序列 因为要按照字典序输出,直接做一遍循环 ...

  5. 牛客 - 奇怪的背包问题增加了(贪心)

    题目链接:点击查看 题目大意:中文题意 题目分析: 代码: #include<iostream> #include<cstdio> #include<string> ...

  6. 用Python实现栈---1顺序表:牛客题解 AB1 【模板】栈

    题目 牛客 AB1 [模板]栈 描述 请你实现一个栈. 操作: push x:将 加x x\ x 入栈,保证 x x\ x 为 int 型整数. pop:输出栈顶,并让栈顶出栈 top:输出栈顶,栈顶 ...

  7. 牛客网|面试必刷TOP101

    BM42 用两个栈实现队列_牛客题霸_牛客网 (nowcoder.com) 由于栈是先进后出,队列是先进先出的,所以需要两个栈来倒来倒去 将数据都push进入 stack1,pop的时候将stack1 ...

  8. 【代码随想录】Day58~Day60单调栈

    单调栈的作用 就是用一个栈来记录我们遍历过的元素 单调栈里存放元素下标i就可以了,如果要使用对应元素,直接T[i]就可以获取到 从栈头到栈尾-递增的话-栈里要加入一个元素i的时候,才知道栈顶元素在数组 ...

  9. 【2019牛客暑期多校训练营(第二场) - H】Second Large Rectangle(单调栈,全1子矩阵变形)

    题干: 链接:https://ac.nowcoder.com/acm/contest/882/H 来源:牛客网 题目描述 Given a N×MN \times MN×M binary matrix. ...

最新文章

  1. java 泛型反射_Java使用反射来获取泛型信息示例
  2. 如何用openvr api打开vive前置摄像头
  3. kali下Wreckuests | DDOS Atacks With HTTP-Flood
  4. GDCM:gdcm::Trace的测试程序
  5. 中国数学会副理事长田刚委员:建议从四个方面加强教师队伍建设
  6. Android SDK Manager下载详解
  7. jconsole是否可以在生产环境使用_jconsole使用
  8. 特斯拉皮卡,会大卖吗?
  9. java 开发规约插件_阿里巴巴Java开发规约IDE插件
  10. excel服务器2010网站,勤哲Excel服务器2010高级企业版完整安装包
  11. JavaScript培训
  12. abb变频器dp适配器说明书_ABB变频器ACS510_CN使用说明书.pdf
  13. 下载列表失败_Mac配置的Motrix,高速下载百度云
  14. idea 导入的模块 右下角没有蓝色方块
  15. HTML文字阴影火焰,本教程火焰字效果非常逼真
  16. 三峡学院计算机调剂,重庆三峡学院2019考研调剂信息公告
  17. 地理地貌3D打印案例
  18. netstat -an
  19. Oracle的表简单介绍
  20. 采集绿盾网的10个经典方法

热门文章

  1. oracle rds 运维服务_从运维的角度分析使用阿里云数据库RDS的必要性–你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库...
  2. python实现猴子爬山算法
  3. Django/Flask/Tornado三大web框架性能分析
  4. xcode8 崩溃问题
  5. java的安装和配置
  6. cm0中断优先级_转:第13章 FreeRTOS任务优先级修改及其分配方案
  7. 信号集操作函数,信号未决、阻塞、递达
  8. 最近重构公司消息服务的架构设计
  9. 日志配置(springboot、mybatis、Lombok)
  10. 隐藏Android下的虚拟按键