123
返回列表 发新帖
楼主: 匿名
跳转到指定楼层
上一主题 下一主题
收起左侧

新年骨骼vo

地里匿名用户
🔗
匿名用户-ZXQT0  2021-1-26 13:54:31

有的 字数字数
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-ZXQT0  2021-1-26 13:55:43
jxpisces 发表于 2021-1-26 13:07
好的 谢谢
所以lz team match完了么

刚刚开始match
回复

使用道具 举报

🔗
1988deandean 2021-1-26 14:18:30 | 只看该作者
全局:
  1. public class OncallSchedule {

  2.     public List<Span> schedule(List<Oncall> ls) {
  3.         List<Tick> axis = new ArrayList<>();
  4.         List<Span> res = new ArrayList<>();
  5.         if(ls == null || ls.isEmpty()){
  6.             return res;
  7.         }
  8.         for (Oncall oncall : ls) {
  9.             Tick startTick = new Tick(oncall.start);
  10.             startTick.set.add(oncall.name);
  11.             axis.add(startTick);
  12.             Tick endTick = new Tick(oncall.end);
  13.             endTick.set.add(oncall.name);
  14.             axis.add(endTick);
  15.         }
  16.         Collections.sort(axis, (a, b) -> a.x - b.x);
  17.         Tick pre = axis.get(0);
  18.         for (int i = 1; i < axis.size(); i++) {
  19.             Tick cur = axis.get(i);
  20.             Span span = new Span(pre.x, cur.x);
  21.             for (String name : pre.set) {
  22.                 span.set.add(name);
  23.                 if (cur.set.contains(name)) {
  24.                     cur.set.remove(name);
  25.                 } else {
  26.                     cur.set.add(name);
  27.                 }
  28.             }
  29.             res.add(span);
  30.             pre = cur;
  31.         }
  32.         return res;
  33.     }

  34.     public void test() {
  35.         List<Oncall> oncalls = new ArrayList<>();
  36.         oncalls.add(new Oncall(0, 3, "A"));
  37.         oncalls.add(new Oncall(2, 4, "B"));
  38.         oncalls.add(new Oncall(5, 6, "C"));
  39.         List<Span> res = schedule(oncalls);
  40.         for (Span s : res) {
  41.             System.out.println(s);
  42.         }
  43.     }

  44.     private class Tick {
  45.         int x;
  46.         Set<String> set;

  47.         public Tick(int x) {
  48.             this.x = x;
  49.             set = new HashSet<>();
  50.         }
  51.     }

  52.     private class Oncall {
  53.         String name;
  54.         int start, end;

  55.         public Oncall(int s, int e, String n) {
  56.             name = n;
  57.             start = s;
  58.             end = e;
  59.         }
  60.     }

  61.     private class Span {
  62.         int start, end;
  63.         Set<String> set;

  64.         public Span(int s, int e) {
  65.             start = s;
  66.             end = e;
  67.             set = new HashSet<>();
  68.         }

  69.         @Override
  70.         public String toString() {
  71.             StringBuilder sb = new StringBuilder();
  72.             for (String name : set) {
  73.                 sb.append(name + ",");
  74.             }
  75.             sb.deleteCharAt(sb.length() - 1);
  76.             return String.format("(%s, %s) %s", start, end, sb.toString());
  77.         }
  78.     }
  79. }
复制代码


回复

使用道具 举报

🔗
CSholic 2021-1-28 03:53:00 | 只看该作者
全局:
楼主是直接recruiter reach out后就五轮VO了吗
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-DXDPO  2021-1-31 11:23:59
belljay 发表于 2021-1-21 09:28
稍稍纠正一下,准确说不是preorder,就是一个标准的DFS遍历整个树然后打印所有的path,基本来说先把input ...

在build graph的时候是不是还要记录每个node有没有parent? 否则不知道哪个是root,没法知道从哪些node(employee)开始了?

多谢。
回复

使用道具 举报

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

本版积分规则

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