旋转排列

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. 30day_网络编程

    由于不同机器上的程序要通信,于是产生通信 C/S架构: Client与Server,客户端(只有用的时候再使用)与服务端(一直运行,等待服务) B/S架构: 浏览器端与服务器端 Browser浏览器, ...

  2. 深入理解C++的型别推导

    所谓型别推导,指的是我们在为变量赋予类型时不必再显式声明,编译器可以根据代码来自动推导类型.C++11中有两种型别推导的场景:模板和auto.下面我们来一一解析. 模板的型别推导 模板在C++中的应用 ...

  3. Spring Cloud netty

    <properties> <spring.boot.version>2.3.2.RELEASE</spring.boot.version> <spring.c ...

  4. [Cisco] IOS NAT Load-Balancing for Two ISP Connections

    interface FastEthernet0 ip address dhcp ip nat outside ip virtual-reassembly ! interface FastEtherne ...

  5. []Python][simple]Serialize data with Pickle and deserialize data from pickle

    序列化 import pickle friend = {"Dan": [20, "Lodon", 123123], "Mary" : [24 ...

  6. .Net 5.0导出Execl的两种方式

    项目中经常会用到表格的导入导出今天来简绍一下我所了解的两种方式 1.拼接成表格的简单方式直接导出,服务器上不用安装其他程序 可以直接导出 public async Task<FileResult ...

  7. 代码片断:GDI绘制带一定角度的椭圆

    //先将DXF文件中的Ellipse 解析到elpList 中 foreach (Ellipse ellipse in elpList) { //定义一个矩形 RectangleF rect = ne ...

  8. [Unity移动端]真机调试

    一.Android Studio 1.log打印 打开AS,新建一个工程,点击左下角的Logcat,如下图,1是设备(支持模拟器,如果是真机的话,需要usb连接电脑,真机要是usb调试模式),2是包名 ...

  9. mysql对汉字排序

    问题: 编写order by排序时,如果字段是汉字的话,排序会失效. 如: SELECT * FROM user ORDER BY age ASC,username DESC 此时按照username ...

  10. CentOS /RHEL 系统更新安全补丁的方法

    在 Linux 系统上,其中一个最重要的需求就是保持定期更新最新的安全补丁,或者为相应的 Linux 版本更新可用的安全补丁.在这篇文章中,我们将分享如何在 CentOS/RHEL 7/6 版本中设置 ...