查看: 1762| 回复: 0
跳转到指定楼层
上一主题 下一主题
收起左侧

[其他] Kara在线高频题 看看我代码哪有问题输出为空

全局:

2019(10-12月)-CS本科+fresh grad 无实习或全职 | Other|BayArea湾区 码农类General全职@

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 我一辈子赖美帝 于 2019-10-30 00:11 编辑

第二问:
{{A,B},{C,D},{B,C},{E,F},{D,E},{F,G}}

A B C D E F G   middle one:D

第三题: 第二题的follow up,假设每门课程可以有多门先修课,找出所有path修到一半课程的名称(出自其他面经)
.--

[i][i][i][i][i][i][i][i][i][i][i][i][i][i][i][i][i] ..


. 1point 3acres
public static void main(String[] args) {
  // TODO Auto-generated method stub
  String[][] student_course_pairs_1 = {. Waral dи,
                         {"58", "Software Design"},
                         {"58", "Linear Algebra"},
                         {"94", "Art History"},
                         {"94", "Operating Systems"},
                         {"17", "Software Design"},. 1point3acres
                         {"58", "Mechanics"},
                         {"58", "Economics"},. ----
                         {"17", "Linear Algebra"},
                         {"17", "Political Science"},
                         {"94", "Economics"},
                         {"25", "Economics"},
  };
  String[] s1={"58", "17"};
  String[] s2={"58", "94"};
  String[] s3={"58", "25"};
  String[] s4={"94", "25"};
  String[] s5={"17", "25"};-baidu 1point3acres
  String[] s6={"17", "94"}; ..
  List<String> res1=shareClass(student_course_pairs_1,s1);
  List<String> res2=shareClass(student_course_pairs_1,s2);
  List<String> res3=shareClass(student_course_pairs_1,s3);
  List<String> res4=shareClass(student_course_pairs_1,s4);
  List<String> res5=shareClass(student_course_pairs_1,s5);
  List<String> res6=shareClass(student_course_pairs_1,s6);        
  //System.out.println(res1);
  //System.out.println(res2);
  //System.out.println(res3);. .и
  //System.out.println(res4);
  //System.out.println(res5);
  //System.out.println(res6);. 1point 3acres
  1.          static List<String> findOrder(String[][] pre) {
  2.                   HashSet<String> courseCount=new HashSet<>();
  3.                   for(String[]s :pre) {
  4.                           courseCount.add(s[0]);
  5.                           courseCount.add(s[1]);
  6.                   }
  7.                   int len=courseCount.size();
  8.                   System.out.println(len);
  9.                   Map<String,Integer> indegree=new HashMap<>();
  10.                   List<String> res=new ArrayList<>();
  11.                      //把先修课放在每个课程的list中+统计入度. 1point3acres
  12.                      Map<String,List<String>> map=new HashMap<>();. Χ
  13.                      for(int i=0;i<pre.length;i++){
  14.                          if(map.containsKey(pre[i][1])){. 1point 3acres
  15.                              map.get(pre[i][1]).add(pre[i][0]);.1point3acres
  16.                          }else{. 1point 3acres
  17.                              List<String> list=new ArrayList<>();
  18.                              list.add(pre[i][0]);
  19.                              map.put(pre[i][1],list);
  20.                          }
  21.                          indegree.put(pre[i][0], indegree.getOrDefault(pre[i][0],0)+1);
  22.                      }
  23. . 1point 3acres
  24.                      //BFS
  25.                      Queue<String> queue=new LinkedList<>();
  26.                      for(int i=0;i<pre.length;i++){
  27.                          if(indegree.get(pre[i][0])==0)queue.offer(pre[i][0]);. From 1point 3acres bbs
  28.                      }
  29.                      int count=0;
  30.                      while(!queue.isEmpty()){.1point3acres
  31.                          String course=queue.poll();
  32.                          count++;
  33.                          res.add(course);
  34.                          List<String> list=map.get(course);
  35.                          if(list!=null){
  36.                              int n=list.size();
  37.                              for(int i=0;i<n;i++){
  38.                                  String subCourse=map.get(course).get(i);. check 1point3acres for more.
  39.                                  indegree.put(subCourse, indegree.getOrDefault(subCourse,0)-1);
  40.                                  if(indegree.get(subCourse)==0)queue.offer(subCourse);
  41.                              }
  42.                          }
  43.                      }

  44.                     if(count==len)return res;
  45.                      else return new ArrayList<>();

  46.                     }

  47. String[][] pre={{"B","A"},{"D","C"},{"C","B"},{"F","E"},{"E","D"},{"G","F"}};
  48.   List<String> resll=findOrder(pre); ..
  49.   System.out.println(resll);. .и
复制代码

}
[/i][/i][/i][/i][/i][/i][/i][/i]
. Waral dи,


[/i][/i][/i][/i][/i][/i][/i][/i][/i]

上一篇:Apple relocate 加拿大
下一篇:开个帖子记录被亚马逊简历拒以后有什么对策
您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表