首页 > 其他分享 >#yyds干货盘点# 名企真题专题:小A最多会新认识的多少人

#yyds干货盘点# 名企真题专题:小A最多会新认识的多少人

时间:2022-12-18 12:00:49浏览次数:36  
标签:yyds 真题 int queue records ai 最多会 val2 new

1.简述:

描述

小A参加了一个n人的活动,每个人都有一个唯一编号i(i>=0 & i<n),其中m对相互认识,在活动中两个人可以通过互相都认识的一个人介绍认识。现在问活动结束后,小A最多会认识多少人?

输入描述:

第一行聚会的人数:n(n>=3 & n<10000);第二行小A的编号: ai(ai >= 0 & ai < n);第三互相认识的数目: m(m>=1 & m< n(n-1)/2);第4到m+3行为互相认识的对,以','分割的编号。

输出描述:

输出小A最多会新认识的多少人?

示例1

输入:

7
5
6
1,0
3,1
4,1
5,3
6,1
6,5

输出:

3

2.代码实现:

import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int ai = in.nextInt();
int m = in.nextInt();
int[] memo = new int[n];
memo[ai] = 1;
Map<Integer, List<Integer>> records = new HashMap<>();
for(int i = 0; i < m; i++) {
String[] strs = in.next().split(",");
int val1 = Integer.parseInt(strs[0]), val2 = Integer.parseInt(strs[1]);
if(!records.containsKey(val1)) records.put(val1, new ArrayList<Integer>());
if(!records.containsKey(val2)) records.put(val2, new ArrayList<Integer>());
records.get(val1).add(val2);
records.get(val2).add(val1);
}
int count = 0;
Deque<Integer> queue = new ArrayDeque<>();
queue.push(ai);
while(!queue.isEmpty()){
int size = queue.size();
for(int i = 0; i < size; i++) {
for(Integer num : records.get(queue.pop())) {
if(memo[num] == 0){
memo[num] = 1;
queue.push(num);
count++;
}
}
}
}
System.out.println(count - records.get(ai).size());
}
}

标签:yyds,真题,int,queue,records,ai,最多会,val2,new
From: https://blog.51cto.com/u_15488507/5950839

相关文章

  • #yyds干货盘点# LeetCode程序员面试金典:栈排序
    题目:栈排序。编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。该栈支持如下操作:push、pop、peek......
  • #yyds干货盘点#聊一聊curl的用法
    curl是什么cURL(客户端URL)是一个开放源代码的命令行工具,用来请求Web和其他各种类型的服务器。curl有着大量的参数,常用来测试/调试服务器的开发和排查等,堪称一个网络“神器”......
  • #yyds干货盘点# react笔记之学习之创建表单
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • #yyds干货盘点# react笔记之学习之处理表单数据
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • #yyds干货盘点# LeetCode程序员面试金典:化栈为队
    题目:实现一个MyQueue类,该类用两个栈来实现一个队列。示例:MyQueuequeue=newMyQueue();queue.push(1);queue.push(2);queue.peek(); //返回1queue.pop(); //返回......
  • #yyds干货盘点# 名企真题专题:小招喵跑步
    1.简述:描述小招喵喜欢在数轴上跑来跑去,假设它现在站在点n处,它只会3种走法,分别是:1.数轴上向前走一步,即n=n+1 2.数轴上向后走一步,即n=n-1 3.数轴上使劲跳跃到当前点的两倍,......
  • #yyds干货盘点#前端性能优化
    浏览器渲染流程解析HTML文件,构建DOM树,同时浏览器主进程负责下载CSS文件CSS文件下载完成,解析CSS文件成树形的数据结构,然后结合DOM树合并成RenderObject树布局R......
  • #yyds干货盘点# LeetCode程序员面试金典:堆盘子
    题目:堆盘子。设想有一堆盘子,堆太高可能会倒下来。因此,在现实生活中,盘子堆到一定高度时,我们就会另外堆一堆盘子。请实现数据结构SetOfStacks,模拟这种行为。SetOfStacks应该由......
  • #yyds干货盘点#PHP的_initialize() 区别 __construct()
    _initialize()方法是在任何方法执行之前,都要执行的,当然也包括__construct构造函数。也就是说如果存在_initialize()函数,调用对象的任何方法都会导致_initialize()函数的自......
  • 【华为机试真题 Python实现】2022年4、5月高频机试题
    文章目录​​2022年4、5月高频机试题​​​​机试必须要会的函数​​​​输入输出处理​​​​for循环​​​​通过下标访问元素​​​​直接迭代访问元素​​​​同时访问......