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

Facebook 黑经

🔗
yangluphil 2016-12-6 07:56:35 | 只看该作者
全局:
楼主有G家很强啦。关于题目,按LC381做,不断getRandom,pop的话确实可以,但如果input does not fit in memory的情况就不行了?这题followup是不是可以用reservoir sampling的思路做,n = w*h个坐标里随机抽取大小为m的子集,只需要space O(m),http://www.geeksforgeeks.org/reservoir-sampling/
回复

使用道具 举报

🔗
WhatsFLAG 2016-12-6 09:06:23 | 只看该作者
全局:
我感觉这个问题可以规约成二维版的Random  shuffle array吧
回复

使用道具 举报

🔗
 楼主| dokolo 2016-12-6 09:08:58 | 只看该作者
全局:
yangluphil 发表于 2016-12-6 07:56
楼主有G家很强啦。关于题目,按LC381做,不断getRandom,pop的话确实可以,但如果input does not fit in me ...

我在主楼里写的水塘抽样... 其实我是想说reservori sampling,大概是水库或者水池抽样?
回复

使用道具 举报

🔗
 楼主| dokolo 2016-12-6 10:00:12 | 只看该作者
全局:
WhatsFLAG 发表于 2016-12-6 09:06
我感觉这个问题可以规约成二维版的Random  shuffle array吧

这个不是真正的二维,可以直接用一维的操作。
问题在于shuffle array是需要打乱所有元素,复杂度是O(W*H)
回复

使用道具 举报

🔗
bumbing 2016-12-6 10:20:22 | 只看该作者
全局:
我的onsite面过这道题,reservori sampling的复杂度和knuth shuffle是一样的,只是空间小而已
还有一种解法,可以用augmented tree解,复杂度是nlogn
回复

使用道具 举报

🔗
tkw1110 2016-12-6 10:37:02 | 只看该作者
全局:
楼主已经很厉害了,狗狗的实习也挺棒的啦!(求微信,我并不能发站内信
回复

使用道具 举报

🔗
 楼主| dokolo 2016-12-6 10:46:41 | 只看该作者
全局:
tkw1110 发表于 2016-12-6 10:37
楼主已经很厉害了,狗狗的实习也挺棒的啦!(求微信,我并不能发站内信)

我微信ID发你站内信了
回复

使用道具 举报

🔗
 楼主| dokolo 2016-12-6 11:25:29 | 只看该作者
全局:
bumbing 发表于 2016-12-6 10:20
我的onsite面过这道题,reservori sampling的复杂度和knuth shuffle是一样的,只是空间小而已
还有一种解 ...

我把代码放下面了,O(M)时间复杂度,我自己的测试没有发现问题...
不对还请指教...
  1. from random import randint
  2. def mines(W,H,M):
  3.         grid = [[0 for _ in range(W)] for __ in range(H)]
  4.         marked = {}

  5.         mines = [None]*M
  6.         for i in range(M):
  7.                 probe = H*W-1-i
  8.                 pos = randint(0,probe)
  9.                 shouldBe = marked.get(pos,pos)

  10.                 marked[pos], marked[probe] = marked.get(probe,probe) , shouldBe
  11.                 mines[i] = shouldBe


  12.         mines = [divmod(mine,W) for mine in mines]
  13.         return mines
复制代码
回复

使用道具 举报

🔗
 楼主| dokolo 2016-12-6 11:44:32 | 只看该作者
全局:
在Linkedin上给面试官发了封InMail,最后一搏吧...
回复

使用道具 举报

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

本版积分规则

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