一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1157|回复: 20
收起左侧

报一个悲剧的fb二面面经

[复制链接] |试试Instant~ |关注本帖
wangjiaan123 发表于 2016-2-23 12:28:55 | 显示全部楼层 |阅读模式

2016(4-6月) 码农类 硕士 实习@Facebook - 校园招聘会 - 技术电面 |Otherfresh grad应届毕业生

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

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

x
一个中国姐姐,上来直接做题,Leetcode hard的题还没有完全刷完,在提醒下还是没写出O(N)的算法。
题目是 Longest consecutive subarray
https://leetcode.com/problems/longest-consecutive-sequence/

评分

4

查看全部评分

本帖被以下淘专辑推荐:

echo33 发表于 2016-2-24 02:46:52 | 显示全部楼层
facebook家出了名的考leetcode啊。。。.鐣欏璁哄潧-涓浜-涓夊垎鍦
所以他家最难的part应该是过简历关。。。lz肯定背景挺好
回复 支持 1 反对 0

使用道具 举报

xiaozhuxiaozhu 发表于 2016-2-23 12:36:14 | 显示全部楼层
这题就是那种,没刷过,很难面试想到optimal solution..
一刷题,感慨。。。谁想出来的这种解法。。
回复 支持 反对

使用道具 举报

 楼主| wangjiaan123 发表于 2016-2-23 12:39:46 | 显示全部楼层
xiaozhuxiaozhu 发表于 2016-2-23 12:36
这题就是那种,没刷过,很难面试想到optimal solution... visit 1point3acres.com for more.
一刷题,感慨。。。谁想出来的这种解法。。

水平不够啊,没办法
回复 支持 反对

使用道具 举报

a6219221 发表于 2016-2-23 13:52:24 | 显示全部楼层
...这题为什么是hard
回复 支持 反对

使用道具 举报

xiaozhuxiaozhu 发表于 2016-2-23 13:55:09 | 显示全部楼层
a6219221 发表于 2016-2-23 13:52
...这题为什么是hard

你自己30分钟写出来了 o(n)的解法?
回复 支持 反对

使用道具 举报

kinggarden2001 发表于 2016-2-23 14:10:34 | 显示全部楼层
a6219221 发表于 2016-2-23 13:52
...这题为什么是hard

这题算hard里比较简单的。hard里比较难的是那几个要用dp的题。
回复 支持 反对

使用道具 举报

a6219221 发表于 2016-2-23 14:27:58 | 显示全部楼层
xiaozhuxiaozhu 发表于 2016-2-23 13:55
你自己30分钟写出来了 o(n)的解法?
. 1point3acres.com/bbs
这倒忘了 不过答案的确是tricky 应该设一个分类叫tricky
回复 支持 反对

使用道具 举报

kinggarden2001 发表于 2016-2-23 14:30:03 | 显示全部楼层
a6219221 发表于 2016-2-23 14:27
这倒忘了 不过答案的确是tricky 应该设一个分类叫tricky

恩 合并两边范围的时候确实不好处理。
回复 支持 反对

使用道具 举报

a6219221 发表于 2016-2-23 14:38:08 | 显示全部楼层
kinggarden2001 发表于 2016-2-23 14:30
恩 合并两边范围的时候确实不好处理。

难道我理解错了 合并两边范围是什么?
回复 支持 反对

使用道具 举报

a6219221 发表于 2016-2-23 14:38:40 | 显示全部楼层
kinggarden2001 发表于 2016-2-23 14:30
恩 合并两边范围的时候确实不好处理。
. visit 1point3acres.com for more.
减数字和加数字这两边?
回复 支持 反对

使用道具 举报

kinggarden2001 发表于 2016-2-23 14:48:34 | 显示全部楼层
这题就是用hash table解。说起来有点麻烦,基本就是维护一些window, 合并左右两个window的时候比较麻烦。当然可以优化,我看到最好的代码解决这个题大概10行左右,而且不tricky。
回复 支持 反对

使用道具 举报

kinggarden2001 发表于 2016-2-23 14:51:52 | 显示全部楼层
我的代码,参考了别人的,不是原创。

public class Solution {
    public int LongestConsecutive(int[] nums) {
                if (nums.Length == 0) return 0;
               
        int max = 1;
               
                Dictionary<int, int> map = new Dictionary<int, int>();
               
                for (int i = 0; i < nums.Length; i++)
                {. 鍥磋鎴戜滑@1point 3 acres
                        if (!map.ContainsKey(nums[i])). 1point3acres.com/bbs
                        {
                                int low = map.ContainsKey(nums[i] - 1) ? map[nums[i] - 1] : 0;
                                int high = map.ContainsKey(nums[i] + 1) ? map[nums[i] + 1] : 0;
                int sum = low + high + 1;
                map[nums[i]] = sum; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
                max = Math.Max(max, sum);
                map[nums[i] - low] = sum;
                map[nums[i] + high] = sum;
                        }                       
                }. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
                . more info on 1point3acres.com
                return max;
    }
}
回复 支持 反对

使用道具 举报

a6219221 发表于 2016-2-23 15:00:30 | 显示全部楼层
http://www.jiuzhang.com/solutions/longest-consecutive-sequence/. 1point 3acres 璁哄潧

应该是这题吧 不用那么复杂

  1. public class Solution {
  2.     /**
  3.      * @param nums: A list of integers
  4.      * [url=home.php?mod=space&uid=160137]@return[/url] an integer
  5.      */
  6.     public int longestConsecutive(int[] nums) {
  7.         HashSet<Integer> set = new HashSet<>();
  8.         for (int i = 0; i < nums.length; i++) {
  9.             set.add(nums[i]);
    .鐣欏璁哄潧-涓浜-涓夊垎鍦
  10.         }
  11.         
  12.         int longest = 0;
  13.         for (int i = 0; i < nums.length; i++) {
  14.             int down = nums[i] - 1;
  15.             while (set.contains(down)) {. Waral 鍗氬鏈夋洿澶氭枃绔,
  16.                 set.remove(down);
  17.                 down--;
  18.             }
    . 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  19.             
  20.             int up = nums[i] + 1;
  21.             while (set.contains(up)) {
  22.                 set.remove(up);
  23.                 up++;
  24.             }
  25.             
  26.             longest = Math.max(longest, up - down - 1);
  27.         }
  28.         
  29.         return longest;. 1point3acres.com/bbs
  30.     }
  31. }
复制代码
回复 支持 反对

使用道具 举报

a6219221 发表于 2016-2-23 15:03:17 | 显示全部楼层
kinggarden2001 发表于 2016-2-23 14:51-google 1point3acres
我的代码,参考了别人的,不是原创。

public class Solution {

如果我没找错题的话 不用那么复杂 2个指针就可以
我也忘了是不是参考了某个网站的代码。好像地里没法发链接出来。被自动当成广告贴去审核了
这个是我刚写的
  1. public class Solution {
  2.     public int longestConsecutive(int[] nums) {
  3.         if(nums == null || nums.length == 0){. more info on 1point3acres.com
  4.             return 0;
  5.         }. visit 1point3acres.com for more.
  6.         if(nums.length == 1){
  7.             return 1;.鏈枃鍘熷垱鑷1point3acres璁哄潧
  8.         }
  9.         HashSet<Integer> set = new HashSet<Integer>();
  10.         for(int i: nums){
  11.             set.add(i);
  12.         }
  13.         int max = 0;
  14.         for(int i: nums){
  15.             int length = 1;
  16.             int dec = i - 1;
  17.             while(set.contains(dec)){
  18.                 length++;
  19.                 set.remove(dec);
  20.                 dec--;
  21.             }
  22.             int inc = i + 1;
  23.             while(set.contains(inc)){
  24.                 length++; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  25.                 set.remove(inc);
  26.                 inc++;
  27.             }-google 1point3acres
  28.             max = (length > max)? length: max;
  29.         }
  30.         return max;
  31.     }
  32. }
复制代码
回复 支持 反对

使用道具 举报

azuree 发表于 2016-2-24 01:58:22 | 显示全部楼层
思路差不多,用python写的.鐣欏璁哄潧-涓浜-涓夊垎鍦
  1. class Solution(object):.1point3acres缃
  2.     def longestConsecutive(self, nums):
  3.         """
  4.         :type nums: List[int]
  5.         :rtype: int
  6.         """
  7.         d = dict(zip(nums, [1] * len(nums)))
  8.         stack = []
  9.         res = 0. From 1point 3acres bbs
  10.         while len(nums) > 0:
  11.             stack = [nums.pop()]
  12.             if d[stack[0]] == 0:. visit 1point3acres.com for more.
  13.                 continue
  14.             length = 0
  15.             while len(stack) > 0:
  16.                 tmp = stack.pop()
  17.                 length += 1
  18.                 d[tmp] = 0
  19.                 if d.get(tmp+1, 0):
  20.                     stack.append(tmp+1)
  21.                 if d.get(tmp-1, 0):
  22.                     stack.append(tmp-1)
  23.             res = max(res, length)
  24.         return res
  25.         
复制代码
回复 支持 反对

使用道具 举报

luofeidream 发表于 2016-2-24 02:51:49 | 显示全部楼层
xiaozhuxiaozhu 发表于 2016-2-23 12:36. from: 1point3acres.com/bbs
这题就是那种,没刷过,很难面试想到optimal solution..
一刷题,感慨。。。谁想出来的这种解法。。
. 鍥磋鎴戜滑@1point 3 acres
这题已经属于hard里面很好想的了。。。我大概15分钟写完了optimal的
回复 支持 反对

使用道具 举报

 楼主| wangjiaan123 发表于 2016-2-24 03:24:42 | 显示全部楼层
echo33 发表于 2016-2-24 02:46
facebook家出了名的考leetcode啊。。。
所以他家最难的part应该是过简历关。。。lz肯定背景挺好

并没有啊楼主还是ee。第一轮on campus刚好答得不错,身边小伙伴去career fair和recruiter聊聊好像都有面试的
回复 支持 反对

使用道具 举报

haling27188 发表于 2016-2-24 04:07:24 | 显示全部楼层
马上要电面的我默默刷leetcode去了。。。
回复 支持 反对

使用道具 举报

snakefly 发表于 2016-2-24 06:38:08 | 显示全部楼层
感觉Fb家最近变难了。。。。
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-8 10:38

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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