一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
天天打游戏、照样领工资,
你要不要来?
把贵司招聘信息放这里
查看: 10443|回复: 34
收起左侧

脸书onsite

[复制链接] |试试Instant~ |关注本帖
yzlwjs 发表于 2016-10-22 14:42:39 | 显示全部楼层 |阅读模式

2016(10-12月) 码农类 硕士 全职@Facebook - 内推 - Onsite |Passfresh grad应届毕业生

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

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

x
  • 利扣91,做完dp解之后,又被问了不用dp怎么做(不限算法时间复杂度)
  • 给n个d维的vector和一个first selected的vector, 选出k个vector,每次选择下一个时要求:选离所有selected vector最远的vector, 计算距离的函数已给出D(v1,v2)并假设调用此函数时间复杂度为O(1), 某vector与所有selected vectors的距离定义为这个vector与其nearest selected neighbor的距离。在面试官的提示下最终找到了复杂度为O(nk)的最优解,对每个unselected的vector存下其与selected vectosr的距离,每次遍历unselected vectors找出距离最远的vector为下一个selected vector, 用这个vector与每个unselected vector的距离去更新距离(若小于原距离,表示nearest selected neighbor更换了)
  • 给一个task序列ABBABBC, 和相同task的最小interval. 例如interval=3, 则BB运行时间为5(B_ _ _ B, _ 表示wait). 写一个函数输入task序列和interval, 输出总的运行时间。 follow up是给一个序列和interval,task的执行顺序可以打乱,输出optimal(总执行时间最短)的执行顺序
  • 最近在做什么以及细问了简历。
    游客,本帖隐藏的内容需要积分高于 166 才可浏览,您当前积分为 0。
    查看如何攒积分 Click here for more info.


评分

2

查看全部评分

本帖被以下淘专辑推荐:

mengmeng88717 发表于 2016-10-28 10:01:01 | 显示全部楼层
第四题的思路
res = sum(dp[i][k])
dp[i][j] = sum { dp[m][j - 1] | if canReach[i][m]}
canReach : boolean[10][10]
canReach[1][6], canReach[1][8], [2][7], [2][9], [3][4], [3][8], [4][3], [4][9], [4][0], [6][1], [6][7], [6][0], [7][2], [7][6], [8][1], [8][3], [9][2], [9][4] = true
init : dp[1][0] = 1;
一维dp就可以,时间应该是O(steps), 空间O(steps + 100)
回复 支持 1 反对 0

使用道具 举报

leixiang5 发表于 2016-10-22 14:54:01 | 显示全部楼层
楼主啥时候面的啊??...比我的难好多- -
回复 支持 反对

使用道具 举报

samuelling 发表于 2016-10-22 15:16:41 | 显示全部楼层
leixiang5 发表于 2016-10-21 22:54
楼主啥时候面的啊??...比我的难好多- -

群主这么晚还不就寝啊
回复 支持 反对

使用道具 举报

hrl1991 发表于 2016-10-22 15:51:01 | 显示全部楼层
第三轮task schedule第一问你的space complexity是多少? 我用的hashmap的方法做space compexity是O(n) interviewer说有更optimal的 但是我没想出来 时间也不多了
回复 支持 反对

使用道具 举报

leixiang5 发表于 2016-10-22 21:06:40 | 显示全部楼层
samuelling 发表于 2016-10-22 15:16
群主这么晚还不就寝啊

在加州 有时差的
回复 支持 反对

使用道具 举报

steveguang 发表于 2016-10-22 22:54:46 | 显示全部楼层
楼主可以讲下第一题第四题怎么做的吗?
回复 支持 反对

使用道具 举报

chestnut9919 发表于 2016-10-23 05:57:10 | 显示全部楼层
求问楼主第一题不用dp能咋做??backtrack?
回复 支持 反对

使用道具 举报

 楼主| yzlwjs 发表于 2016-10-24 01:24:03 | 显示全部楼层
chestnut9919 发表于 2016-10-23 05:57
求问楼主第一题不用dp能咋做??backtrack?

嗯对,字数字数
回复 支持 反对

使用道具 举报

 楼主| yzlwjs 发表于 2016-10-24 01:24:25 | 显示全部楼层
leixiang5 发表于 2016-10-22 14:54
楼主啥时候面的啊??...比我的难好多- -
. 鍥磋鎴戜滑@1point 3 acres
本月初,字数字数
回复 支持 反对

使用道具 举报

 楼主| yzlwjs 发表于 2016-10-24 01:30:22 | 显示全部楼层
steveguang 发表于 2016-10-22 22:54
楼主可以讲下第一题第四题怎么做的吗?

第一题就是利扣原题呀,不用dp的话,我说的是backtracking/DFS的做法,感觉这个follow up纯粹是小哥没准备别的题了硬加上的
第四题我的暴力解就挺直接的,用dp的话我后来想了想,可以记录到每个位置的走法数(初始状态只有数字1有1种),然后每走一步,根据前一步的位置更新下一步位置的走法数,步数走完以后,把所有位置的走法数加起来就可以了
回复 支持 反对

使用道具 举报

steveguang 发表于 2016-10-24 04:06:27 | 显示全部楼层
yzlwjs 发表于 2016-10-24 01:30. more info on 1point3acres.com
第一题就是利扣原题呀,不用dp的话,我说的是backtracking/DFS的做法,感觉这个follow up纯粹是小哥没准 ...

楼主走日字是什么意思?矩形对角线吗?有什么限制没有
回复 支持 反对

使用道具 举报

 楼主| yzlwjs 发表于 2016-10-24 10:57:40 | 显示全部楼层
steveguang 发表于 2016-10-24 04:06
楼主走日字是什么意思?矩形对角线吗?有什么限制没有

就是中国象棋里面的马走日,横2步纵1步,或者横1步纵2步
回复 支持 反对

使用道具 举报

liyuanxi23 发表于 2016-10-24 13:05:31 | 显示全部楼层
居然看出来群主了
回复 支持 反对

使用道具 举报

dowhatyoufear 发表于 2016-10-25 00:42:35 | 显示全部楼层
这个多少种可能走法,比如1开始走两步,最后1-6-1,1-6-7,1-8-1,1-8-3 应该是有1,7,3三个Positions. 结果是3吗?如果不是那就有问题了,那就应该是2^steps种不同路径了(即使最后到一样的点)   链接: https://instant.1point3acres.com/thread/195066 来源: 一亩三分地 (Instant 真垃圾!)
回复 支持 反对

使用道具 举报

ericlee27 发表于 2016-10-25 03:37:57 | 显示全部楼层
dowhatyoufear 发表于 2016-10-25 00:42. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
这个多少种可能走法,比如1开始走两步,最后1-6-1,1-6-7,1-8-1,1-8-3 应该是有1,7,3三个Positions. 结 ...

我也是这么觉得的。。。
回复 支持 反对

使用道具 举报

 楼主| yzlwjs 发表于 2016-10-25 12:22:17 | 显示全部楼层
dowhatyoufear 发表于 2016-10-25 00:42
这个多少种可能走法,比如1开始走两步,最后1-6-1,1-6-7,1-8-1,1-8-3 应该是有1,7,3三个Positions. 结 ...

是后者,看有多少种不同路径(即使最后到一样的点)。 另外应该是有O(m^steps)种不同路径,有些点出发到下一步的走法不一定是2种, 比如4->(3, 9, 0)
回复 支持 反对

使用道具 举报

dowhatyoufear 发表于 2016-10-25 12:47:53 | 显示全部楼层
yzlwjs 发表于 2016-10-25 12:22
是后者,看有多少种不同路径(即使最后到一样的点)。 另外应该是有O(m^steps)种不同路径,有些点出发 ...

谢谢楼主~BFS或者DFS没觉得有什么不好的。恭喜楼主拿到Offer。
回复 支持 反对

使用道具 举报

Badger96 发表于 2016-10-25 12:57:00 | 显示全部楼层
想请教一下楼主第三问的followup怎么做的?能写一段代码看看吗,十分感谢
回复 支持 反对

使用道具 举报

Badger96 发表于 2016-10-25 13:18:55 | 显示全部楼层
试写了一下code,先统计了frequency of tasks然后用maxHeap做的,楼主能帮忙看看是这样么,感觉还有可以优化的地方,谢谢~
public static String taskSchedule(String str, int k) {
        StringBuilder rearranged = new StringBuilder();
        Map<Character, Integer> map = new HashMap<>();
        for (char c : str.toCharArray()) {
            if (!map.containsKey(c)) {
                map.put(c, 0);
            }
            map.put(c, map.get(c) + 1);
        }

        Queue<Map.Entry<Character, Integer>> maxHeap = new PriorityQueue<>(new Comparator<Map.Entry<Character, Integer>>() {
            public int compare(Map.Entry<Character, Integer> entry1, Map.Entry<Character, Integer> entry2) {
                return entry2.getValue() - entry1.getValue();
            }
        });. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
        maxHeap.addAll(map.entrySet());

        while (!maxHeap.isEmpty()) {
            int i = 0;. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
            ArrayList<Map.Entry<Character, Integer>> temp = new ArrayList<>();
            while (i <= k && !maxHeap.isEmpty()) {
                Map.Entry<Character, Integer> curr = maxHeap.poll();
                rearranged.append(curr.getKey());
                curr.setValue(curr.getValue() - 1);
                temp.add(curr);
                i++;
            }
            for (Map.Entry<Character, Integer> e : temp) {
                if (e.getValue() > 0) {
                    maxHeap.offer(e);
                }
            }
        }
        return rearranged.toString();
    }
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-12-12 18:39

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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