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

狗家新鲜vo

🔗
匿名用户-XDQPC  2021-5-11 15:51:54 来自APP |倒序浏览

2021(4-6月) 码农类General 硕士 全职@google - 内推 - Onsite  | | Other | 在职跳槽

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

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

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

评分

参与人数 6大米 +10 收起 理由
StupidCorn + 1 给你点个赞!
ND0406 + 1 赞一个
鱼鹤影 + 2 给你点个赞!
qwseda123 + 2 给你点个赞!
地中有山 + 1 给你点个赞!

查看全部评分


上一篇:FB VO 4月
下一篇:狗曼OA+店面
推荐
cxw111 2021-5-12 00:19:59 | 只看该作者
全局:
本帖最后由 cxw111 于 2021-5-12 00:30 编辑


1 二分 类似刷题网吃香蕉那题.
3 two pointer
4 感觉见过不少次了 个人感觉是建立dp[i][j][Direction] 来做
1) dp[i][j][DOWN] = max(dp[i + 1][j][DOWN/LEFT/RIGHT] if matrix[i + 1][j] not blocked)
2) scan from left to right, right to left to update dp[i][j][RIGHT/LEFT]
3) check the first row to find the maximal path.


补充内容 (2021-05-12 23:46 +8:00):
不知道为啥dp[i][j][Direction]的第一维被吞了....

补充内容 (2021-05-12 23:47 +8:00):
dp 有 三维   i, j, direction
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-4ROFZ  2021-5-12 12:22:46
感谢楼主分享。最后一个题怎么样不会一直循环左右左右呢?
回复

使用道具 举报

全局:
cxw111 发表于 2021-5-12 00:19
1 二分 类似刷题网吃香蕉那题.
3 two pointer
4 感觉见过不少次了 个人感觉是建立dp[j][Direction] 来 ...

第四题不能直接bfs吗?
不好意思,看错了,是最远。。。。
回复

使用道具 举报

🔗
ZZ_2315 2021-6-1 09:20:26 | 只看该作者
全局:
第三题 是啥意思啊, subsequence 怎么有最短的?是说substring吗?
回复

使用道具 举报

🔗
ydog5 2021-6-1 09:53:07 | 只看该作者
全局:
请问下楼主第三题是啥意思?是要找包含a-z的substring中最小的吗?
第一题可以再解释一下吗?
回复

使用道具 举报

🔗
hfpt2020 2021-7-16 00:50:02 | 只看该作者
全局:
ydog5 发表于 2021-5-31 21:53
请问下楼主第三题是啥意思?是要找包含a-z的substring中最小的吗?
第一题可以再解释一下吗?

yes
回复

使用道具 举报

🔗
hfpt2020 2021-7-16 00:50:18 | 只看该作者
全局:
ZZ_2315 发表于 2021-5-31 21:20
第三题 是啥意思啊, subsequence 怎么有最短的?是说substring吗?

yes
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-K0AI4  2021-8-2 13:53:20
结合的别的帖子来看第三题,可能理解错误,不喜勿喷。
输入2D arr比如
0 0 1 0
1 1 1 1
0 0 1 0
1 1 1 1
找到最长的一条由1 组成的length,只能向下,向左and向右,不能重复。求最远的走到最下面一层的路径。这个例子输出7
1 1 1
      1
1 1 1


首先从第一层开始扫描,因为只能向下,所以肯定是层数越多越占优势了。对于每一层从左到右再从右到左,分别与上一层的状态做dp,

从左到右:cur[i] = max(cur[i-1], last[i]) + 1 if grid is not 0 else 0
从右到左: cur[i] = max(cur[i+1], last[i]) + 1 if grid is not 0 else 0
然后对于两次扫描取最大值作为这一层的状态

需要一个数组表示上一层的状态,同时用两个数组表示下一层的状态。
例如:
扫描第一层之后,0还是0,1还是1,所以结果是 [0 0 1 0]
扫描第二层,从左到右是[1 2 3 4] 从右到左是[4 3 2 1],所以结果是[4 3 3 4]
扫描第三层,从左到右是[0, 0, 4 0] 从右到左是[0 0 3 0】 所以结果是0 0 4 0  
扫描第四层,从左到右是[1 ,2 ,5, 6] 从右到左是[7, 6, 5, 1],所以结果是[7, 6, 5 ,6] 取最大值为7

回复

使用道具 举报

全局:
第一题一看就是koko eat banana那道题。哈哈

补充内容 (2021-09-26 00:36 +8:00):
然后第三题应该就是蠡口遥遥舞的变种。目标string是"abcdef..z", 只不过要找的是长度,而不是个数
回复

使用道具 举报

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

本版积分规则

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