旋转排列

https://www.luogu.com.cn/problem/B3688)

解读一下题目:

要求从给定的数组拿出最后一个数字后

看看变化后的数组的最后一个数字是否是要求的数字

想到用栈和队

再看看例子

1.发现如果给的数组的最后一位刚好是所要求的得重新去排

2.排过一次后达到目的数字了就只输出一次

注意更新栈的栈顶就可以了还有防止越界了

我就是因为没有注意只有一个数的情况re了

上代码

queue<int> q1,q2;
stack<int> st2;
for (int i = 1; i <= n; i++) {
int a; cin >> a;
q1.push(a),st2.push(a);
}
if(n == 1)cout << q1.front();
else {
for (int ii = 1; ii <= n; ii++) {
int t = st2.top();
st2.pop();
if (st2.top() == n) {
q2.push(t);
for (int i = 1; i <= n - 1; i++) {
q2.push(q1.front());
q1.pop();
}
for (int i = 1; i <= n; i++) {
if (i == n)cout << q2.front();
else {
cout << q2.front() << ' ';
q2.pop();
}
}
break;
} else {
for (int i = 1; i <= n; i++) {
if (st2.empty())break;
else st2.pop();
}
q2.push(t);
for (int i = 1; i <= n - 1; i++) {
q2.push(q1.front());
q1.pop();
}
q1.pop();
for (int i = 1; i <= n; i++) {
if (i == n) {
cout << q2.front() << endl;
q1.push(q2.front()), st2.push(q2.front());
q2.pop();
} else {
cout << q2.front() << ' ';
q1.push(q2.front()), st2.push(q2.front());
q2.pop();
}
}
}
}
}

把一个队换成数组好像更号,不用pop那么多次

The first week match's mistake-2的更多相关文章

  1. Elasticsearch 5.0 中term 查询和match 查询的认识

    Elasticsearch 5.0 关于term query和match query的认识 一.基本情况 前言:term query和match query牵扯的东西比较多,例如分词器.mapping ...

  2. SQL Server-聚焦查询计划Stream Aggregate VS Hash Match Aggregate(二十)

    前言 之前系列中在查询计划中一直出现Stream Aggregate,当时也只是做了基本了解,对于查询计划中出现的操作,我们都需要去详细研究下,只有这样才能对查询计划执行的每一步操作都了如指掌,所以才 ...

  3. Java compiler level does not match解决方法

    从别的地方导入一个项目的时候,经常会遇到eclipse/Myeclipse报Description  Resource Path Location Type Java compiler level d ...

  4. 钉钉开放平台demo调试异常问题解决:hostname in certificate didn't match

    今天研究钉钉的开放平台,结果一个demo整了半天,这帮助系统写的也很难懂.遇到两个问题: 1.首先是执行demo时报unable to find valid certification path to ...

  5. .net正则表达式大全(.net 的 System.Text.RegularExpressions.Regex.Match()方法使用)

    正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET的System.dll类库提供的System.Text.RegularExpression ...

  6. 在mongoose中使用$match对id失效的解决方法

    Topic.aggregate( //{$match:{_id:"5576b59e192868d01f75486c"}}, //not work //{$match:{title: ...

  7. index+match函数在压实度中对盒号盒质量随机不重复的最佳使用

    首先按照升序排列好盒号和盒质量,使其一一对应, 盒号    盒重量    随机值rand()     随机值大小排列rank 1         2001       0.01             ...

  8. MongoDB查询转对象是出错Element '_id' does not match any field or property of class

    MongoDB查询转对象是出错Element '_id' does not match any field or property of class   解决方法: 1.在实体类加:[BsonIgno ...

  9. Excel——使用OFFSET、MATCH、COUNTA实现二级菜单

    如图所示,接下来提供两种办法实现: 1.将A.B.C.D定义为名称NAME. 2.设置一级菜单单元格数据有效性为NAME. 3.设置二级菜单格数据有效为: =OFFSET($A$1,MATCH($A6 ...

  10. Excel——MATCH函数

    使用 MATCH 函数在范围单元格中搜索特定的项,然后返回该项在此区域中的相对位置. 1.参数说明: MATCH(lookup_value, lookup_array, [match_type]) l ...

随机推荐

  1. Linux系列---【内存占用过高问题排查思路】

    内存占用过高问题排查思路 1.使用top命令查看后台任务 按shift+M使应用按内存使用率排序,定位到第一个使用内存最高的应用,并找到对应的PID. 2.使用ps命令查看对应的pid对应哪个应用 p ...

  2. redis事务和锁机制、持久化操作RDB/AOF

    一.Redis事务介绍 Redis事务是一个单独的隔离操作 :事务中的所有命令都会序列化.按顺序地执行.事务在执行的过程中,不会被其他客户端发送来的命令请求所打断.Redis事务的主要作用就是串联多个 ...

  3. 据库连接中useSSL

    在进行数据库连接时: jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/db?useSSL=false&am ...

  4. Docker安装(win10)

    Docker安装 windows 首先开启Hyper-V Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10.这是 Docker Des ...

  5. Vue的Component name报错

    问题描述: Component name "xxxxx" should always be multi-word.eslintvue 解决方案: 在项目目录中找到 .eslintr ...

  6. C# 动态操作 控件位置绑定 [ Anchor ] 属性

    注: 1.此类属于非常用类,只因本人需要编写的...顺便刷贴一下 2.对于初学,其中的枚举使用可以为你加深一点印象 以下为操作类代码: public class AchCtrer { #region ...

  7. C# winform DataGridView 一列显示星号

    private void myDataGrid_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventA ...

  8. ORACLE数据库通过DBLINK连接另一个数据库

    ORACLE数据库通过DBLINK连接另一个数据库 亲测有效:create database link XXX --dblink名connect to 远程数据库用户名 identified by & ...

  9. VC9.0 for Python2

    python2安转包时提示: pip install xxx时,提示 Microsoft Visual C++ 9.0 is required 下载并安装: 链接:https://pan.baidu. ...

  10. springboot脱包部署

    <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactI ...