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

奶牛排队 java 思维题

👨‍🏫 5133. 奶牛排队

题目描述

约翰的农场有 n n n 头奶牛,每一头奶牛都有一个正整数编号。

不同奶牛的编号不同。

现在,这 n n n 头牛按某种顺序排成一队,每头牛都拿出一张纸条写下了其前方相邻牛的编号以及其后方相邻牛的编号。

注意:

  • 这些奶牛并没有记下自己的编号。
  • 位于队首的奶牛前方没有牛,所以它在前方相邻牛处写下的是数字 0 0 0
  • 位于队尾的奶牛后方没有牛,所有它在后方相邻牛处写下的是数字 0 0 0

将所有奶牛写下的纸条收集起来并打乱顺序后交给你。

你的任务是根据这些纸条信息,推导出完整的奶牛队列。

输入格式

第一行包含整数 n n n,表示奶牛数量。

接下来 n n n 行,每行包含两个整数 a _ i , b _ i a\_i,b\_i a_i,b_i,表示其中一头奶牛写下的其前方相邻牛的编号以及其后方相邻牛的编号。

注意, a _ i a\_i a_i b _ i b\_i b_i 可能为 0 0 0,这表示该奶牛没有前方相邻牛或后方相邻牛。

输出格式

输出共一行, n n n 个整数,按照从前到后的顺序输出队列中每头奶牛的编号。

数据范围

5 5 5 个测试点满足 2 ≤ n ≤ 5 2 \le n \le 5 2n5
所有测试点满足 2 l e n ≤ 2 × 1 0 5 2 \\le n \le 2 \times 10^5 2len2×105 0 ≤ a _ i , b _ i ≤ 1 0 6 0 \le a\_i,b\_i \le 10^6 0a_i,b_i106

输入样例:

4
92 31
0 7
31 0
7 141

输出样例:

92 7 31 141

时间复杂度

O(n)

🍺 AC code

import java.util.Scanner;public class Main
{static int N = 1000010;static int[] a = new int[N];static int[] b = new int[N];static int[] mp = new int[N];static int[] cnt = new int[N];// 记录每个数出现的次数,出现在前面 +1,出现在后面 -1public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();int idx = 0;// idx 记录当前牛在 a[i] 时 的下标 ifor (int i = 0; i < n; i++){a[i] = sc.nextInt();b[i] = sc.nextInt();cnt[a[i]]++;cnt[b[i]]--;mp[a[i]] = i;if (a[i] == 0)// 说明是第一头牛idx = i;}int val = 0;// val记录当前的值for (int i = 0; i < N; i++)if (cnt[i] == 1)val = i;//for (int i = 0; i < n; i++){System.out.print(val + " ");int nextVal = b[idx];// 当前牛的下标 idx 的 b(后一位)int nextIdx = mp[val];// 找到 (下一头牛的编号 == a[i]) 的 下标 ival = nextVal;idx = nextIdx;}}
}
http://www.lryc.cn/news/113670.html

相关文章:

  • uniapp 微信小程序 判断数据返回的是jpg还是pdf,以及pdf预览
  • SpringBoot 的事务及使用
  • Android中的ABI
  • Python爬虫在用户行为模型构建中的应用与挑战
  • LangChain与大模型的学习
  • C语言标准定义的32个关键字
  • PE半透明屏是怎么制造的?工艺、材料、应用
  • linux文本三剑客---grep,sed,awk
  • leaflet-uniapp 缩放地图的同时 显示当前缩放层级
  • [Securinets CTF Quals 2023] Admin Service,ret2libc,One is enough
  • 计算机组成原理-笔记-第二章
  • mysql大量数据导入记要
  • 极狐GitLab 全新「价值流仪表盘」使用指南
  • 通过logrotate实现nginx容器内日志按天存储
  • 广东珠海电子行业导入MES系统需要注意什么
  • 小红书2023/08/06Java后端笔试 AK
  • 3、有序数组的平方
  • 用于自然语言处理 (NLP) 的 MLOps
  • C#抽象静态方法
  • 小研究 - Mysql快速全同步复制技术的设计和应用(一)
  • HTML <samp> 标签
  • C之(8)linux动态库编译框架
  • Zabbix网络拓扑配置
  • 2.4G芯片XL2408开发板,SOP16封装,芯片集成1T 8051内核单片机
  • iPhone苹果手机地震预警功能怎么开启?
  • Storm学习之使用官方Docker镜像快速搭建Storm运行环境
  • 【GTest学习】
  • [JAVAee]网络通信基础
  • 【HDFS】BlockManager#checkRedundancy方法详解
  • c++ 拷贝构造