旋转排列

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. C语言初级阶段7——指针3

    C语言初级阶段7--指针3 指针数组:描述的是一个数组,存储的是指针 #include<stdio.h> void fun(int(*arr)[2]) { for (int i = 0; ...

  2. 《JavaScript高级程序设计》Chapter04 变量,作用域,内存

    原始值&引用值 原始值(primitive value):Undefined, Null, Boolean, Number, String, Symbol 按值访问,直接操作存储在变量中的实际 ...

  3. pntia7-7 软硬车厢交替排列 (40 分)

    7-7 软硬车厢交替排列 (40 分) 设车辆厂生产了硬座车厢和软座车厢共n节(混合在一起),要求使用队列的基本操作,编程实现所有硬座车厢和所有软座车厢交替排列. 例如硬座车厢用H来表示,软座车厢用S ...

  4. NOIP2019 树的重心

    Description \[\sum_{(u,v)\in E}\Biggl(\sum_{x为S_u重心}x+\sum_{y为S_v重心}y\Biggr) \] \(1\leqslant n\leqsl ...

  5. 对css及css3的大致整理(查漏补缺)

  6. Python Boolean类型 判断

    and 判断非Boolean类型数据会自动转换类型 "A" and "B" → "B" 因为表达式 A 和 B都为True所以返回 &quo ...

  7. 让 rtb 不显示 横纵 滚动条的方法

    让 rtb 不显示 横纵 滚动条的方法: a.设置属性: tb.ScrollBars=None; b.设置属性:rtb.WordWarp=False; c. 添加事件代码: rtb.ContentsR ...

  8. spacy词向量

    spaCy能够比较两个对象,并预测它们的相似程度. 预测相似性对于构建推荐系统或标记重复项很有用. 例如,您可以建议与当前正在查看的用户内容相似的用户内容,或者将支持凭单标记为与现有内容非常相似的副本 ...

  9. pip install keras==2.0.3 -i https://pypi.tuna.tsinghua.edu.cn/simple

    pip install keras==2.0.3 -i https://pypi.tuna.tsinghua.edu.cn/simple

  10. revit添加扩展组件

    revit 添加组件方法: 查找本地这个地址: C:\Users\用户名\AppData\Roaming\Autodesk\Revit\Addins\2018 下载网上找到的插件,一般从github查 ...