字节跳动 笔试最后一题,请各位大佬看看对吗?


import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;


public class Test12 {

public static void main(String[] args) {
Scanner s  = new Scanner(System.in);
int totalPcounts = s.nextInt();
int doubleCouts = s.nextInt();
int a[] = new int[doubleCouts*2];
Map<Integer,Integer> countMap = new HashMap<Integer, Integer>();
Map<Integer,Integer> countMap2 = new HashMap<Integer, Integer>();
for(int i =0; i <doubleCouts*2;i++){
a[i] = s.nextInt();
}

for(int j =1; j<a.length;j=j+2){

countMap.put(a[j], a[j-1]);
countMap2.put(a[j], 1);
if(countMap.containsKey(a[j-1])){

Integer value = countMap2.get(a[j-1]);
if(value != a[j])
countMap2.put(a[j],value+1 );

}
}
int res = 0;
for(int q=1; q<=totalPcounts;q++){
if(countMap2.get(q)==totalPcounts-1){
res++;
}
}
System.out.println(res);
}
}

#笔试题目##字节跳动#
全部评论
暴力递归就ac了
点赞 回复 分享
发布于 2018-09-09 12:14
void getGuanzhuCore(map<int, vector<int>> & guanzhu, map<int, set<int>> & beiguanzhu, vector<int> & lujing, int user) { for (int i = 0; i < guanzhu[user].size(); ++i) { for (int j = 0; j < lujing.size(); ++j) { beiguanzhu[guanzhu[user][i]].insert(lujing[j]); } //没有在路径中的元素,继续查找 if (find(lujing.begin(), lujing.end(), guanzhu[user][i]) == lujing.end()) { lujing.push_back(guanzhu[user][i]); getGuanzhuCore(guanzhu, beiguanzhu, lujing, guanzhu[user][i]); lujing.pop_back(); } } } void getAllGuanzhu(map<int, vector<int>> & guanzhu, map<int, set<int>> & beiguanzhu) { vector<int> guanzhulujing; for (auto it = guanzhu.begin(); it != guanzhu.end(); ++it) { guanzhulujing.clear(); guanzhulujing.push_back(it->first); getGuanzhuCore(guanzhu, beiguanzhu, guanzhulujing, it->first); } } int main() { int n = 0, m = 0; while (cin >> n >> m) { map<int, vector<int>> guanzhu; map<int, set<int>> beiguanzhu; for (int i = 0; i < m; ++i) { int u1 = 0, u2 = 0; cin >> u1 >> u2; guanzhu[u1].push_back(u2); } getAllGuanzhu(guanzhu, beiguanzhu); int cnt = 0; for (auto it = beiguanzhu.begin(); it != beiguanzhu.end(); ++it) { it->second.erase(it->first);//先删掉自己的关注 if (it->second.size() >= n - 1) cnt++; } cout << cnt << endl; } return 0; }
点赞 回复 分享
发布于 2018-09-09 12:28
忘记考虑自己关注自己了,一直是33.33%……
点赞 回复 分享
发布于 2018-09-09 12:40
并查集
点赞 回复 分享
发布于 2018-09-09 12:47

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务