跳转到指定楼层
上一主题 下一主题
收起左侧

狗狗家阳谷店面

🔗
Wyf2222 2019-8-15 05:41:54 | 只看该作者
全局:
请问楼主第四题是什么做法。
回复

使用道具 举报

🔗
西法的洛 2019-8-15 14:25:08 | 只看该作者
全局:
请问 lz 投的是什么职位哇?
大米已加
回复

使用道具 举报

🔗
 楼主| Neko酱の假尾巴 2019-8-15 22:53:47 来自APP | 只看该作者
全局:
西法的洛 发表于 2019/08/15 14:25:08
请问 lz 投的是什么职位哇?
大米已加

应该就是general swe?
回复

使用道具 举报

🔗
 楼主| Neko酱の假尾巴 2019-8-15 22:56:04 来自APP | 只看该作者
全局:
Wyf2222 发表于 2019/08/15 05:41:54
请问楼主第四题是什么做法。

嗯…我好像已经回答了一次 不过没关系。。
用bst 查找里面有没有元素和target value差值少于L的
回复

使用道具 举报

🔗
branson821 2019-8-19 12:38:00 | 只看该作者
全局:
第三题是不是dfs做 ?   min max 可能会导致不连续的range
回复

使用道具 举报

🔗
 楼主| Neko酱の假尾巴 2019-8-20 08:01:46 | 只看该作者
全局:
branson821 发表于 2019-8-19 12:38
第三题是不是dfs做 ?   min max 可能会导致不连续的range

是用dynamic programming啦
如果你可以到第i个元素,你肯定是从其中以下几个地方过来的
i-1, i-min, i-min-1,..i-max
回复

使用道具 举报

🔗
KuanCNTF 2019-8-20 08:49:03 | 只看该作者
全局:
第四题我觉得也可以用一个长度是2k的sliding windows做。平移window的同时maintain一个ordered_map, 也就是插入新出现的数字,移除在window内出现次数等于0的数字。每移动一次,就检查map里最小的数的出现次数是不是>1,如果只出现一次的话就看比最小数大一点的那个数是不是和它的差值小于L; 同理对最大的数也是一样的处理方法。
这样做的时间复杂度是 O(n*log(k)), 空间复杂度是O(k)。
不知道有没有问题,欢迎指教。
回复

使用道具 举报

🔗
 楼主| Neko酱の假尾巴 2019-8-21 02:25:48 来自APP | 只看该作者
全局:
KuanCNTF 发表于 2019/08/20 08:49:03
第四题我觉得也可以用一个长度是2k的sliding windows做。平移window的同时maintain一个ordered_map, 也就是插入新出现的数字,移除在window内出现次数等于0的数...

嗯!比如这样一个数组
1 5 3 2 7 2.5
k=3
L=0.5
从每一个数往后数k个 如果其中有差值小于L的就算重复的话 那么2和2.5就算是duplicate了
所以对于每一个数 可以算做duplicate的range是独立的(当然也有overlap的时候
用orderedmap的话 每次你比对当前的元素和map里的k个数 这个的时间复杂度是不是也要算进去?
构建维护map是 log(k)
同时查找map里面元素是否属于duplicate是k
然后数组长度是n
所以这样是nklog(k)?








回复

使用道具 举报

🔗
KuanCNTF 2019-9-3 11:17:34 | 只看该作者
全局:
Neko酱の假尾巴 发表于 2019-8-13 12:27
**** 本内容被作者隐藏 ****

分已经加~
求问楼主,构建/维护一个bst是不是等效于维护一个ordered_map?每次查找的时候都要把这个bst/ordered_map里的每一个元素都从小到大走一遍?
所以总的复杂度是n*(k+log(k))=n*k
这样对吗
回复

使用道具 举报

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

本版积分规则

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