数据结构作业——buzhidao(队列)

buzhidao

Description

有一个长度为 n 的序列,第 i 个数的大小为 a[i]。现在从第 1 个数开始从左往右进行以下操作:
1. 如果当前数是剩下的数中最大的,则输出并删去这个数。
2. 若不是,将它放到序列的末尾。
现在,bg 想知道一开始的第 m(从 1 开始计数)个数第几次被输出

Input

第一行输入两个正整数 n(0<n<=1000)、m(1=<m<=n)。 接下去一行有 n 个正整数,第 i 个数表示 a[i]的值。

Output

输出一个数,表示第 m 个数第几次被输出。

Sample Input

5 2
1 2 3 4 5
6 1
2 2 8 2 2 2

Sample Output

4
5

思路

模拟这个插入删除过程,我们可以发现,第m个数要被输出,必须经过,左边比它大的数都输出,从右边起,找出右边第一个比它大的数,大于等于这个数都被输出,才能轮到第m个数被输出。

 AC代码

  

posted @   zxzhang  阅读(392)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示

目录导航