京东第一题(暴力解法)

先建立邻接矩阵,然后矩阵每一行当作一个key放map里,value是Set,存行号 同一个集合的元素,这个元素标识的每一行肯定是相同的(可以自己画图看看) 之后遍历每一个key,遍历到key中为1的位置,查看对应Set中是否存在这个元素,若存在则错误。然后遍历另外的key和set,对于其他set的每一个元素,当前key对应下标是必须为1的。

public class Main {

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int time = in.nextInt();
int index = 0;
while(index++ < time){
int N = in.nextInt();
int M = in.nextInt();
int mIndex = 0;
int[][] arr = new int[N][N];
while(mIndex < M){
int i = in.nextInt();
int j = in.nextInt();
arr[i-1][j-1] = 1;
arr[j-1][i-1] = 1;
mIndex++;
}
Map<String,Set<Integer>> map = new HashMap<String,Set<Integer>>();
for(int i = 0; i < N; i++){
StringBuilder str = new StringBuilder();
for(int j = 0; j < N; j++){
str.append(arr[i][j]);
}
if(!map.containsKey(str.toString())){
Set<Integer> set = new HashSet<Integer>();
set.add(i);
map.put(str.toString(), set);
}else{
Set<Integer> set = map.get(str.toString());
set.add(i);
}
}
boolean b = true;
for(Map.Entry<String, Set<Integer>> entry : map.entrySet()){
String key = entry.getKey();
Set<Integer> set = entry.getValue();
for(int i = 0; i < N; i++){
if(key.charAt(i) == '1'){
if(set.contains(i)){
b = false;
break;
}
}
}
if(!b){
break;
}
for(Map.Entry<String, Set<Integer>> otherEntry : map.entrySet()){
String otherKey = otherEntry.getKey();
if(key != otherKey){
Set<Integer> otherSet = otherEntry.getValue();
for(int otherNum : otherSet){
if(key.charAt(otherNum) == '0'){
b = false;
break;
}
}
}
if(!b)
break;
}
}
if(b)
System.out.println("Yes");
else
System.out.println("No");
}
}

}

#笔试题目##京东#
全部评论
大哥 你的答案真好看
点赞 回复 分享
发布于 2018-09-09 21:36

相关推荐

01-14 10:23
已编辑
湖南师范大学 计调
太久没更新,前几天看到一条评论,说“牛客就是当年那群做题区毕业了开始找工作还收不住那股味”的群体。字里行间透着居高临下的评判,不是,他该不会以为自己很幽默?很犀利吧?作为在牛客混了不算短日子的用户,我感到的不只是被冒犯,更是一种深刻的悲哀——这种以“松弛感”为名,对另一种生存策略的轻蔑,颇有一种自己考不上大学早早出来混社会,嘲笑考上大学的人是书呆子,然后大言不惭地说:死读书有什么用,人脉和资源才是硬道理。我不知道说这个话的人,手头究竟握着多少真正管用的人脉与资源,也不知道他这么傲慢地说出“那股味”的时候,是站在哪一个巨人的肩膀上,才能如此“松弛从容”地俯视众生,还能品评出别人身上“没收住”的余...
淬月星辉:这种评论把正常的努力扭曲成卷😂,说白了就是自己不努力,看着身边努力的人一个个都事业有成了,自己的心里开始不平衡了,就发这种酸言酸语。牛客可以说是我用过那么多平台里社区氛围最好的论坛了,用了大半年了,基本上没见过有人吵架的,都是在互帮互助提建议,帮忙看简历的,帮忙选offer的,帮忙指点学习路线的,分享工作经验和趣事的,我觉得这才是互联网该有的样子。
点赞 评论 收藏
分享
2025-11-27 01:09
电子科技大学 C++
牛客68151836...:实习不相关就靠后写吧,因为大概面试官也不感兴趣。前面区域写一点更容易引起提问的内容,比如投后台就把服务器项目提前。
简历上的经历如何包装
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务