当前位置: 首页 > news >正文

试题 算法训练 自行车停放

问题描述

  有n辆自行车依次来到停车棚,除了第一辆自行车外,每辆自行车都会恰好停放在已经在停车棚里的某辆自行车的左边或右边。(e.g.停车棚里已经有3辆自行车,从左到右编号为:3,5,1。现在编号为2的第4辆自行车要停在5号自行车的左边,所以现在停车棚里的自行车编号是:3,2,5,1)。给定n辆自行车的停放情况,按顺序输出最后停车棚里的自行车编号。

输入格式

  第一行一个整数n。
  第二行一个整数x。表示第一辆自行车的编号。
  以下n-1行,每行3个整数x,y,z。
  z=0时,表示编号为x的自行车恰停放在编号为y的自行车的左边
  z=1时,表示编号为x的自行车恰停放在编号为y的自行车的右边

输出格式

  从左到右输出停车棚里的自行车编号

样例输入

4
3
1 3 1
2 1 0
5 2 1

样例输出

3 2 5 1

数据规模和约定

  n<=100000
  自行车编号为不超过100000的正整数。

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;int n, x;
vector<int> cars;int main() {cin >> n >> x;cars.push_back(x);vector<int>::iterator it;for (int i = 0; i < n - 1; i ++) {int x, y, z;cin >> x >> y >> z;it = find(cars.begin(), cars.end(), y);if (z == 0) {cars.insert(it, 1, x);} else {cars.insert(it + 1, 1, x);}}for (int i = 0; i < cars.size(); i ++) {cout << cars[i] << " ";}return 0;
}

总结:

一开始想的是数组,每次输入就遍历然后插入

但是最后那个测试点超时了

然后用vector来,直接找到要插入的点的位置,然后插入

最后输出的时候,一开始用的遍历器去输出,最后超时了

然后改用int来遍历,才极限通过

刚好CPU限时1s 

http://www.lryc.cn/news/25582.html

相关文章:

  • 泛型与Map接口
  • Unity Bug记录本
  • B. The Number of Products)厉害
  • 一起Talk Android吧(第五百一十二回:自定义Dialog)
  • GinVueAdmin源码分析3-整合MySQL
  • 大数据框架之Hadoop:MapReduce(三)MapReduce框架原理——MapReduce开发总结
  • requests---(4)发送post请求完成登录
  • Python抓取数据具体流程
  • 【Python学习笔记】第二十四节 Python 正则表达式
  • 数字逻辑基础:原码、反码、补码
  • 有限差分法-差商公式及其Matlab实现
  • 高校就业信息管理系统
  • 【Java|golang】2373. 矩阵中的局部最大值
  • 根据指定函数对DataFrame中各元素进行计算
  • 【蓝桥杯集训·每日一题】AcWing 3502. 不同路径数
  • Java - 数据结构,二叉树
  • 模拟QQ登录-课后程序(JAVA基础案例教程-黑马程序员编著-第十一章-课后作业)
  • 【壹】嵌入式系统硬件基础
  • 当参数调优无法解决kafka消息积压时可以这么做
  • Java线程池源码分析
  • 手撕八大排序(下)
  • SAP 详细解析SCC4
  • java异常分类和finally代码块中return语句的影响
  • 【链表OJ题(二)】链表的中间节点
  • 【强烈建议收藏:MySQL面试必问系列之并发事务锁专题】
  • Linux下使用Makefile实现条件编译
  • java 应用cpu飙升(超过100%)故障排查
  • 光学设计软件Ansys的Lumerical 2023版本下载与安装使用
  • Java 异常
  • JavaSE学习笔记day17