一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推多家公司面试
Airbnb 数据科学职位
in analytics and inference
游戏初创公司
招聘工程师、Designer和游戏策划
游戏初创公司DreamCraft招聘工程师、UIUX Designer和游戏策划
电商初创公司Good Days
招聘SDE/UI/TPM实习生
把贵司招聘信息放这里
查看: 3826|回复: 15
收起左侧

Snapchat电面

[复制链接] |试试Instant~ |关注本帖
zhuchenchen 发表于 2016-11-23 08:07:45 | 显示全部楼层 |阅读模式

2016(10-12月) 码农类 硕士 全职@Snapchat - 内推 - 技术电面 |Failfresh grad应届毕业生

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

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
上周的电面,打印级别列表。input是一个json list, 比如[ {employee: 1, manager: 2}, {employee: 0, manager: 0}, {employee: 2, manager: 0}, {employee: 3, manager: 0}], 每个element第一项是某个员工的employee id,第二项是他要report to的manager的employee id。比如上述input就是employee id为1的员工汇报给employee id为2的员工(该员工是一个manager)。给出这样一个list, 打印出如下列表:
0
I_2
  I_1
I_3

楼主写了dfs + hashmap,但是最后有个bug没有搞出来,挂了。感觉他们非常看重最后跑出来的结果,只要跑过了就一定会过,大家加油!



本帖被以下淘专辑推荐:

johnjavabean 发表于 2016-11-23 08:26:53 | 显示全部楼层
这个题原来还在出...
回复 支持 反对

使用道具 举报

 楼主| zhuchenchen 发表于 2016-11-23 08:29:18 | 显示全部楼层
johnjavabean 发表于 2016-11-23 08:26. from: 1point3acres.com/bbs
这个题原来还在出...
. 鍥磋鎴戜滑@1point 3 acres
晕,难道是个面经题?
回复 支持 反对

使用道具 举报

zjiang42 发表于 2016-11-24 01:11:50 | 显示全部楼层
麻烦楼主能解释一下要输出的格式吗 那个I_2是啥意思,最后是要建个tree吗 还是用tab表示等级打印出来。谢啦。要是能再稍微详细说下你的思路就更好了。同样没见过这个题的飘过
回复 支持 反对

使用道具 举报

amethlex 发表于 2016-12-10 08:03:14 | 显示全部楼层
请问lz,测试数据是怎样的?应该是严格的树吧。
回复 支持 反对

使用道具 举报

头像被屏蔽
幻灭天神 发表于 2016-12-16 02:05:16 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽
幻灭天神 发表于 2016-12-18 11:44:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

 楼主| zhuchenchen 发表于 2016-12-18 12:11:37 | 显示全部楼层
zjiang42 发表于 2016-11-24 01:11. Waral 鍗氬鏈夋洿澶氭枃绔,
麻烦楼主能解释一下要输出的格式吗 那个I_2是啥意思,最后是要建个tree吗 还是用tab表示等级打印出来。谢啦 ...
.1point3acres缃
I_就是个打印的要求 打印employee id时的一个前缀而已
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
我的思路是建一个map, key 是manager id(这里等同于employee id), value是report给key的employee id,纪录一下ceo的id, 然后对map做一次dfs就好了。

补充内容 (2016-12-18 12:13):. 1point3acres.com/bbs
value 是一个 id list
回复 支持 反对

使用道具 举报

 楼主| zhuchenchen 发表于 2016-12-18 12:12:03 | 显示全部楼层
amethlex 发表于 2016-12-10 08:03
请问lz,测试数据是怎样的?应该是严格的树吧。

是的 紫薯紫薯紫薯
回复 支持 反对

使用道具 举报

 楼主| zhuchenchen 发表于 2016-12-18 12:12:25 | 显示全部楼层
幻灭天神 发表于 2016-12-16 02:05. Waral 鍗氬鏈夋洿澶氭枃绔,
楼主请问有behavior question嘛

有点忘记了 大噶就说了下简历上的project吧
回复 支持 反对

使用道具 举报

 楼主| zhuchenchen 发表于 2016-12-18 12:12:42 | 显示全部楼层
幻灭天神 发表于 2016-12-18 11:44
json文件的处理需要自己写嘛

要的 紫薯紫薯紫薯
回复 支持 反对

使用道具 举报

jyty 发表于 2016-12-30 02:11:13 | 显示全部楼层
感觉像是先建一个图,然后拓扑排序遍历
回复 支持 反对

使用道具 举报

jyty 发表于 2016-12-30 02:15:35 | 显示全部楼层
这个输入input还需要自己parse吗?输入的格式是list<string>?
回复 支持 反对

使用道具 举报

Cats881119 发表于 2017-1-6 12:13:10 | 显示全部楼层
这个我oracle面试也碰到过 还有follow up-google 1point3acres

假如没有入度为零的node怎么办
回复 支持 反对

使用道具 举报

freemail165 发表于 2017-1-13 07:56:13 | 显示全部楼层
jyty 发表于 2016-12-30 02:11
感觉像是先建一个图,然后拓扑排序遍历

哪有你说的那么复杂
回复 支持 反对

使用道具 举报

averillzheng 发表于 2017-1-23 15:21:12 | 显示全部楼层
写了下。大家给点意见。
    static class Level{
        int employee;
        int manager;. more info on 1point3acres.com
        Level(int employee, int manager) {
            this.employee = employee;
            this.manager = manager;
        }.鐣欏璁哄潧-涓浜-涓夊垎鍦
    }
    public static void printLevels(List<Level> levels) {. Waral 鍗氬鏈夋洿澶氭枃绔,
        if(levels == null) return;
        Map<Integer, Integer> managers = new HashMap<>();. From 1point 3acres bbs
        Map<Integer, TreeSet<Integer>> graph  = new TreeMap<>();.鏈枃鍘熷垱鑷1point3acres璁哄潧
        for(Level l : levels) {
. more info on 1point3acres.com
            //Number of managers
            if(managers.containsKey(l.employee)) {
                managers.put(l.employee, managers.get(l.employee) + 1);
            } else {
                managers.put(l.employee, 1);
            }

            if(!managers.containsKey(l.manager)) {
                managers.put(l.manager, 0);. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
            }. from: 1point3acres.com/bbs
.1point3acres缃
            //Add all employees of managers. 1point 3acres 璁哄潧
            TreeSet<Integer> tset = graph.get(l.manager);.1point3acres缃
            if(tset == null) {
                tset = new TreeSet<>();. From 1point 3acres bbs
            }. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
            tset.add(l.employee);
            graph.put(l.manager, tset);
            if(!graph.containsKey(l.employee))
                graph.put(l.employee, new TreeSet<>());. Waral 鍗氬鏈夋洿澶氭枃绔,
        }. visit 1point3acres.com for more.

        for(int key : managers.keySet()) {
            if(managers.get(key) == 0)
                printLevelsHelper(key, graph, 0);
        }
    }
. more info on 1point3acres.com
    static void printLevelsHelper(int key, Map<Integer, TreeSet<Integer>> graph, int level) {

        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < level; i++) {
            sb.append("-");
        }
        System.out.println(sb.append(key));

        for(int e : graph.get(key)) {
            printLevelsHelper(e, graph, level + 1);
        }
    }
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-1-23 18:28

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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