zoukankan      html  css  js  c++  java
  • 抖音红人,

    package com.li.jinRiTouTiao.exam3; import java.io.InputStream; import java.util.*; /** * @program: GradleTestUseSubModule * @author: Yafei Li * @create: 2018-09-09 09:55 * 抖音红人: 被所有人直接或者间接关注的人,就是抖音红人。 * 求出红人个数 **/ public class Main5 { public static void main(String[] args){ Class clazz = Main5.class.getClass(); InputStream ins = clazz.getResourceAsStream("/month9day16/jinRiTouTiao/exam3/question5.txt"); Scanner scanner = new Scanner(ins); int N = scanner.nextInt(); int M=scanner.nextInt(); Map> map = new HashMap<>(); //integer是人的号码n,LinkedList是关注该人n的列表 /** * 自己关注自己,所以将自己添加到关注自己的列表中 */ for (int i = 1; i <= N; i++) { if (!map.containsKey(i)) { LinkedList list = new LinkedList<>(); list.add(i); map.putIfAbsent(i,list); } } /** * 遍历所有的关注对数 */ for (int i = 0; i < M; i++) { int follower=scanner.nextInt(); //关注人 int star=scanner.nextInt(); //被关注人 map.computeIfPresent(star,(k,v)->{ //如果被关注人star已经被关注过。 if (!v.contains(follower)) { v.add(follower);//将关注该star的 新人添加到关注人列表中 } return v; }); } Iterator iterator = map.keySet().iterator(); int num=0; while (iterator.hasNext()) { //迭代,取出每一个被关注人 Integer star = iterator.next(); LinkedList followList = map.get(star); //关注该star的列表 int length=followList.size(); int i=0; while (i < length && length< N) { Integer follower = followList.get(i); //取出关注人的对象 LinkedList secondaryFollowList = map.get(follower); //取出二级关注人的列表secondaryFollowList for (int j = 0; j < secondaryFollowList.size(); j++) { //对二级关注人的列表secondaryFollowList遍历 if (!followList.contains(secondaryFollowList.get(j))) {//如果star关注人列表中,不包含这个人。那么将该人添加到star的列表中 followList.add(secondaryFollowList.get(j)); if (followList.size() == N) { //如果关注star的列表的长度等于总人数了,那么该人是抖音红人。抖音红人加一 num++; } length++; //对列表长度进行自增 } } i++; } } System.out.println(num); } }
  • 相关阅读:
    Shell中 调用/引用/包含 另外的脚本文件的两种方法
    CentOS6.3安装MongoDB2.2 及 安装PHP的MongoDB客户端
    Linux下忘记MySQL的root密码的解决方法
    计算机图形学 椭圆的扫描转换(3)
    实现app上对csdn的文章查看,以及文章中图片的保存 (制作csdn app 完结篇)
    linux 查看并终止进程
    ios7自带的晃动效果
    HDU--1533--Going Home--KM算法
    C语言中怎么求动态数组大小
    myeclipse断点调试
  • 原文地址:https://www.cnblogs.com/liyafei/p/9655683.html
Copyright © 2011-2022 走看看