顺丰科技高级java面试_顺丰科技-Java笔试编程题-均ac
import java.util.*;
public class Main {
private static int n; //人数
private static int m; //语言数
private static int k; //已知的信息数
private static int[] parent; //并查集
private static int[] peopleToLanguage;
private static Map> peopleToLanguageMap = new HashMap<>(); //根据人将语言分群
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
m = scanner.nextInt();
k = scanner.nextInt();
peopleToLanguage = new int[n];
Arrays.fill(peopleToLanguage, -1);
parent = new int[m];
for (int i = 0; i
parent[i] = i; //每一种语言单独一个集合
}
boolean[] show = new boolean[m];
for (int i = 0; i
int people = scanner.nextInt();
int language = scanner.nextInt() - 1;
peopleToLanguage[people - 1] = language;
if (peopleToLanguageMap.containsKey(people - 1)) {
peopleToLanguageMap.get(people - 1).add(language);
} else {
List list = new ArrayList<>();
list.add(language);
peopleToLanguageMap.put(people - 1, list);
}
show[language] = true;
}
int result = 0;
for (int i = 0; i
if (peopleToLanguage[i] == -1) { //不会任何语言的人,肯定需要学习一种语言
result++;
}
}
for (List list : peopleToLanguageMap.values()) {
for (int i = 0; i
unionTwo(list.get(i), list.get(i + 1));
}
}
Set parentSet = new HashSet<>();
for (int i = 0; i
if (show[i]) {
parentSet.add(findParent(i));
}
}
if (parentSet.size() != 0) {
result += parentSet.size() - 1;
}
System.out.print(result);
}
private static int findParent(int x) {
int a = x;
while (x != parent[x]) {
x = parent[x];
}
while (a != parent[x]) {
int z = a;
a = parent[a];
parent[z] = x;
}
return x;
}
private static void unionTwo(int a, int b) {
int aParent = findParent(a), bParent = findParent(b);
if (aParent != bParent) {
parent[aParent] = bParent;
}
}
}
顺丰科技高级java面试_顺丰科技-Java笔试编程题-均ac相关推荐
- 蘑菇街 java 面试_校招|蘑菇街java后端三面
作者:TheBestLee 来源:牛客网感谢牛客平台提供的机会,校招也经历了一个多月,对于双非非科班的大学生来讲,想找一份大厂的工作确实有些困难(除开那些特别优秀的啊),终于经历三轮面试终于拿到了蘑菇 ...
- 税友软件公司java面试_税友集团java面试题
答案 一 选择题 1 D , 2 AD , 3 C , 4 AB , 5 AG 6 A , 7 C , 8 ABC , 9 A , 14 A , 15 CB , ...
- 阿里巴巴菜鸟java面试_阿里巴巴菜鸟包裹java面试总结
jvm的基本原理,分为几块 https://www.cnblogs.com/dingyingsi/p/3760447.html 事务有几个等级 https://blog.csdn.net/liwenx ...
- 京东校招java笔试题_京东2018校招技术笔试编程题汇总
1.回文 分析 暴力枚举一下check回文,可以确定出最后答案的一半,就可以得到答案了. 参考代码 #include using namespace std; bool isPalindrome(st ...
- Java——快手2020校园招聘秋招笔试--[编程题]运动会
题目: 一年一度的快手运动会又要开始了,同学们终于有一天可以离开鼠标键盘显示器,全身心的投入到各种体育项目中.UED设计师小红虽然没有参加体育项目,但她的责任重大,因为她是拉拉队的队长,她需要在每个项 ...
- Java——快手2020校园招聘秋招笔试[编程题]质因数统计
题目: 我们知道每一个大于1的整数都一定是质数或者可以用质数的乘积来表示,如10=2*5.现在请设计一个程序,对于给定的一个(1,N] 之间的正整数(N取值不超过10万),你需要统计(1,N] 之间所 ...
- java面试总结(一)-----如何准备Java初级和高级的技术面试
java面试总结(一)--如何准备Java初级和高级的技术面试 本文内容来自:https://mp.weixin.qq.com/s?__biz=MzAxNDMwMTMwMw==&mid=224 ...
- Java继承_这10道Java面试题!大部分的人回答不出来
1.为什么等待和通知是在 Object 类而不是 Thread 中声明的? 2.为什么Java中不支持多重继承? 3.为什么Java不支持运算符重载? 4.为什么 String 在 Java 中是不可 ...
- Java 面试必问题目,Java 后端校招面试题
字节跳动一面: 自我介绍,主要讲讲做了什么和擅长什么 看你项目做 Spring 比较多, 问一下 Spring 相关的东西, IoC 是什么概念? Bean 的默认作用范围是什么?其他的作用范围? 索 ...
最新文章
- 如何matlab导入邻接矩阵,“excel如何做矩阵“matlab中读取excle中的邻接矩阵
- 已知/未知宽高的浮动元素水平居中对齐 和 图片水平垂直居中对齐
- 详解各种锁:CAS、共享锁、排它锁、互斥锁、悲观锁、乐观锁、行级锁、表级锁、页级锁、死锁、JAVA对CAS的支持、ABA问题、AQS原理
- Python 爬虫进阶六之多进程的用法
- vue点击切换类名_vue 新用户引导(vue-dirver)
- netty心跳过程中 发送消息失败_netty心跳机制和断线重连(四)
- 开机自检BIOS语言详解
- NLP之电影评分数据的情感分析
- [转] Async/Await替代Promise的6个理由
- 高等代数期末考试题库及答案_高等代数II答案试题题目及答案,期末考试题库,章节测验答案...
- QQ群发精灵V3.2
- python的对文档密码的简单破解
- 老毛桃发帖子 去广告
- cve-2018-1273复现思路及简单利用(避坑)
- python基础入门练习(字符串练习)
- ESP32 烧录出厂固件
- 乐视电商云的整体架构与技术实现
- Android 6.0 状态栏信号图标分析
- Java 的垃圾回收
- 关于开源软件License的说明