📣 独立日限时特惠: VIP通行证立减$68
回复: 25
跳转到指定楼层
上一主题 下一主题
收起左侧

狗家新鲜五轮昂塞

 
🔗
匿名用户-QE3BP  2020-11-19 12:21:36 来自APP |倒序浏览

2020(10-12月) 码农类General 博士 全职@google - 猎头 - Onsite  | | Other | 在职跳槽

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

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

x
出卖队友求大米~~ 队友脸家三年经验E5,recruiter年中reach out,拖延了好几次最终决定面了算了,于是今日裸考,假都没请面完接着开会= =。据称面的很一般,也不知道面的几,发出来求大米~~
以下由队友复盘。

第一轮:
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies


第二轮:
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies


第三轮:
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies


第四轮 system design:
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies


第五轮 bq 附赠一道system design (面试官搞错了。。。):
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies


求大米~~~


补充内容 (2020-11-20 02:03):
求大米求大米!!想要188大米看面经😭😭😭

补充内容 (2020-11-20 03:17):
第一题有误解,更新在回复,有错误麻烦指出来,谢谢!!

补充内容 (2020-11-27 03:26):
hr给了4的offer,可能因为确实面的一般+只有三年经验。家属直接据了冷冻期一年。

评分

参与人数 20大米 +47 收起 理由
guoguovvv + 1 赞一个
user2198M + 1 很有用的信息!
iriszhuhai + 1 很有用的信息!
rainly + 2 很有用的信息!
shoren + 1 给你点个赞!

查看全部评分


上一篇:19号亚麻实习新鲜电面
下一篇:雨林社招OA

本帖被以下淘专辑推荐:

  • · google|主题: 216, 订阅: 124
推荐
ee19920302 2020-11-24 05:06:20 | 只看该作者
全局:
我觉得第二题可以当成 刷题网的雾散来做
遍历数组, 遇见0, sum就+1, 遇见1 sum就减1, 有个数max时刻track sum的最大值。 如果sum<0, then set sum = 0.

评分

参与人数 7大米 +8 收起 理由
xiao90537 + 1 给你点个赞!
heiyu + 2 给你点个赞!
user2198M + 1 给你点个赞!
dsdgjhbxewj1121 + 1 很有用的信息!
fmusk + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

推荐
johnnywsd 2020-12-31 02:37:15 | 只看该作者
全局:
做了下第二题,欢迎指正。求米
  1. # coding: utf-8

  2. """
  3. Given an array containing only 0 and 1s, find the best subarray to perform a single flip operation.
  4. The goal is that: after the flip, number of 1s should&nbsp;&nbsp;be the maximum.
  5. Flip operation means that you will convert all 0 to 1, and all 1 to 0 in that array.
  6. You can skip flipping if you think it is not worth doing the flip.
  7. Return the maximum number of 1s after you do the flip.

  8. 队友还是用的prefix sum再找区间最大的差值,面试官说可以O(1)空间,作为homework。

  9. Follow-up: what if it is a 2D array?</div>
  10. """


  11. class Solution:
  12.     def max_flip(self, bits):
  13.         dp = [0] * len(bits)
  14.         for i, b in enumerate(bits):
  15.             val = 1 if b == '1' else -1
  16.             prev = dp[i - 1] if i > 0 else 0
  17.             dp[i] = min(prev + val, val)
  18.         orig_one_count = sum(1 for b in bits if b == '1')
  19.         res = orig_one_count + max(-min(dp), 0)
  20.         return res

  21.     def max_flip_follow_up(self, bits):
  22.         # O(1) space. rolling array. dp[i] only relies on the prev one.
  23.         dp = [0] * 2
  24.         min_dp = 0
  25.         for i, b in enumerate(bits):
  26.             val = 1 if b == '1' else -1
  27.             prev = dp[(i - 1) % 2] if i > 0 else 0
  28.             dp[i % 2] = min(prev + val, val)
  29.             min_dp = min(min_dp, dp[i % 2])
  30.         orig_one_count = sum(1 for b in bits if b == '1')
  31.         res = orig_one_count + max(-min_dp, 0)
  32.         return res
  33.    

  34. import unittest
  35. class Tests(unittest.TestCase):
  36.     def test1(self):
  37.         bits = '0001000'
  38.         sol = Solution()
  39.         actual = sol.max_flip(bits)
  40.         self.assertEqual(actual, 6)
  41.         actual2 = sol.max_flip_follow_up(bits)
  42.         self.assertEqual(actual2, 6)

  43.     def test2(self):
  44.         bits = '1001001'
  45.         sol = Solution()
  46.         actual = sol.max_flip(bits)
  47.         self.assertEqual(actual, 6)
  48.         actual2 = sol.max_flip_follow_up(bits)
  49.         self.assertEqual(actual2, 6)

  50.     def test3(self):
  51.         bits = '1111111'
  52.         sol = Solution()
  53.         actual = sol.max_flip(bits)
  54.         self.assertEqual(actual, 7)
  55.         actual2 = sol.max_flip_follow_up(bits)
  56.         self.assertEqual(actual2, 7)

  57.     def test4(self):
  58.         bits = '1010101'
  59.         sol = Solution()
  60.         actual = sol.max_flip(bits)
  61.         self.assertEqual(actual, 5)
  62.         actual2 = sol.max_flip_follow_up(bits)
  63.         self.assertEqual(actual2, 5)

  64. unittest.main(verbosity=2)
复制代码
回复

使用道具 举报

推荐
ispadea 2020-11-20 02:15:26 | 只看该作者
全局:
本帖最后由 ispadea 于 2020-11-20 02:20 编辑
fernando 发表于 2020-11-20 01:07
第二题感觉就是 sliding window? 找一个最大的全0的subarray 来 flip。
第一题 没太懂,能再说说么?

第二题我没看到是要找subarray,我还以为是找index,我之前的解法那就不对了
找一个最大的全0的subarray 来 flip

这个会错过最优解吧,比如a=1001000,最优应该是flip a[1:]而不是a[4:]
感觉可以这样解:
1. 左右指针初始在第一个0
2. 右指针向前滑动,记录当前窗口内0和1的个数,如果0的个数大于1的个数,继续滑动右指针,如果相等,重置左右指针到下一个0. 滑动右指针的同时要update目前为止最大的flip收益
3. 遍历完以后最大flip收益的指针位置即所要找的subarray

第一题按照lz的例子 [1, ‘abc’], [2, ‘54321’],[1, ‘abcdef’], [1, ‘re’],,先按size sort
a= [1, ‘re’], [1, ‘abc’], [2, ‘54321’],[1, ‘abcdef’]

然后计算size的prefix sum:
s=[2, 5, 10,16]

遍历以上list,发现在s[2]==max_size_over_all, 所以max_size_per_source可能是len(a[2]),如果下一个message的size大于a[2]的size,那max_size_per_source就是a[2]的size,如果相等,那目标是a[2]size的前一个size;
如果遍历时s_i没有恰好等于max_size_over_all而是大于,那目标就是a_i size的前一个size
回复

使用道具 举报

🔗
ispadea 2020-11-19 16:06:59 来自APP | 只看该作者
全局:
第一题不用二分吧?在算prefix sum的时候就可以判断当前size是不是会超过total size

第二题感觉不需要prefix sum,计算0的总数,遍历list,记录当前遇到的0和1的数目,然后计算此时flip的总和,和目前的最大值作比较

第三题同求最优解,naive的遍历所有可能的pair要 n^2,再加上字符串比对,整体要kn^2
回复

使用道具 举报

🔗
AlbertZhong 2020-11-19 17:06:33 | 只看该作者
全局:
第三题应该是LC 318。。。确实必须要有O(n^2),唯一的优化可能就是用bit mask来辅助
回复

使用道具 举报

🔗
dylen 2020-11-19 17:18:52 来自APP | 只看该作者
全局:
AlbertZhong 发表于 2020-11-19 01:06:33
第三题应该是LC 318。。。确实必须要有O(n^2),唯一的优化可能就是用bit mask来辅助
跑去看了 是的🥺😂谢谢 我可以睡个好觉了
回复

使用道具 举报

🔗
KisekiABC 2020-11-19 17:27:29 | 只看该作者
全局:
不知道lz交流的时候怎么样?我个人的经历是面试的时候给出了一个暴力解但是也给过了,我觉得是交流方面比较好所以给过了,如果lz交流方面还可以的话那我个人觉得稳了
回复

使用道具 举报

🔗
fernando 2020-11-20 01:07:27 | 只看该作者
全局:
ispadea 发表于 2020-11-19 16:06
第一题不用二分吧?在算prefix sum的时候就可以判断当前size是不是会超过total size

第二题感觉不需要pref ...

第二题感觉就是 sliding window? 找一个最大的全0的subarray 来 flip。
第一题 没太懂,能再说说么?
回复

使用道具 举报

🔗
dylen 2020-11-20 02:02:39 | 只看该作者
全局:
KisekiABC 发表于 2020-11-19 17:27
不知道lz交流的时候怎么样?我个人的经历是面试的时候给出了一个暴力解但是也给过了,我觉得是交流方面比较 ...

谢谢 队友交流还可以 但毕竟是裸考不敢报什么希望😂 昨天我们讨论觉得只要反馈结果不是冷冻期的极大值就阔以了
回复

使用道具 举报

🔗
dylen 2020-11-20 03:10:16 | 只看该作者
全局:
第一题lz水平有限,还是理解不到位,举的例子有错,重新写一下。
[1, ‘abc’], [2, ‘54321’],[1, ‘abcdef’], [1, ‘re’],...

max_size_over_all = 10

max_size_per_source = 8 (是source的总长度,不是单个message的长度,不能包括[1, ‘abcdef’] ,所以是8)

===以下lz的理解===

首先对每个source prefix sum。

然后二分查找,下界1,上界min(max_size_over_all, max(每个source的prefix sum)),根据判断条件调整上下界直到找到满足条件的largest max_size_per_source

判断条件是在prefix sum array对每个source找到小于max_size_per_source的长度,求和,与max_size_over_all做比较。(这里又是一个二分查找)

时间复杂度不知道对不对。二分查找是logM x klogN,M是搜查空间,k个source,每个source个数N。构建prefix sum要kN。取较大值。

回复

使用道具 举报

🔗
dylen 2020-11-20 03:15:14 | 只看该作者
全局:
ispadea 发表于 2020-11-20 02:15
第二题我没看到是要找subarray,我还以为是找index,我之前的解法那就不对了

这个会错过最优解吧,比 ...

你好,我对第一题的理解Messages will be stored in chronical order不能sort的。我自己也理解错了,可能造成误解了抱歉抱歉!!具体更新在回复里了。
回复

使用道具 举报

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

本版积分规则

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