回复: 11
收起左侧

麦塔 变种怎么做

匿名用户-IZF9M  2025-2-6 09:26:59
本楼:   👍  0
0%
0%
0   👎

2024(1-3月) MachineLearningEng 博士 全职@Meta - Other - 视频面试  | 😐 Neutral 😣 Hard | Other | 其他

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

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

x

荔蔻 柳儿变种,需
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
下应该怎么做?

评分

参与人数 1大米 +3 收起 理由
清道神君 + 3 欢迎分享你知道的情况,会给更多大米奖励!

查看全部评分


上一篇:Coinbase MLE Intern OA面经
下一篇:刀大师新鲜vo
地里匿名用户
匿名用户-OI7T6  2025-2-6 12:10:32
本楼:   👍  0
0%
0%
0   👎
  1. def unique_path(m, n):
  2.     ret = []
  3.     def dfs(i, j, cur):
  4.         if i == m-1 and j == n-1:
  5.             ret.append(cur[:])
  6.             return
  7.         if i < m-1: dfs(i+1, j, cur + [(i+1, j)])
  8.         if j < n-1: dfs(i, j+1, cur + [(i, j+1)])
  9.    
  10.     dfs(0, 0, [(0, 0)])
  11.     return ret
复制代码
时间复杂度我个人想的是O(2^(m+n-2)) 或者O(2^(m+n)), 因为对于每一个格子都要做一次decision,除了最后一列和最后一行。-2可以认为是常数忽略不计。
空间复杂度的话因为记录每一条path,所以是O(m+n) * (m+n-2)! / (m-1)!(n-1)! 其中(m+n)是每一条path的长度,后面的factorial是ret的长度。

评分

参与人数 1大米 +2 收起 理由
CurtisAAA + 2 很有用的信息!

查看全部评分

回复

使用道具 举报

CurtisAAA 2025-2-6 14:57:10 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   429
100%
0%
2
匿名用户 发表于 2025-2-5 20:10
时间复杂度我个人想的是O(2^(m+n-2)) 或者O(2^(m+n)), 因为对于每一个格子都要做一次decision,除了最后一 ...

base case里的: ret.append(cur[:]);  因为copy current path, 这步花的时间应该是O(M+N), 这一步不用算在time compelxity里吗? total time complexity应该是O((m + n) * 2 ^ (m + n - 2))吧
回复

使用道具 举报

zzrdwj 2025-2-21 12:27:22 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   1247
86%
14%
210
CurtisAAA 发表于 2025-2-5 22:57
base case里的: ret.append(cur[:]);  因为copy current path, 这步花的时间应该是O(M+N), 这一步不用算 ...

时间复杂度应该和空间复杂度是一样的,因为每一步有效操作都是添path里的一个位置
回复

使用道具 举报

地里匿名用户
匿名用户-6RVWY  2025-2-6 09:44:28
本楼:   👍  0
0%
0%
0   👎
类似生成所有的combination,用dfs在每一步枚举所有向下或者向右走的情况
回复

使用道具 举报

地里匿名用户
匿名用户-IZF9M  2025-2-6 09:50:28
本楼:   👍  0
0%
0%
0   👎
匿名用户 发表于 2025-2-5 20:44
类似生成所有的combination,用dfs在每一步枚举所有向下或者向右走的情况

可以分析下时间复杂度和空间复杂度吗?
回复

使用道具 举报

诺亚方舟R 2025-2-6 09:50:48 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   1155
95%
5%
60
用普通的dfs (backtracking) 就行,这题本来是考dp的,为了不让你用dp就改了条件
回复

使用道具 举报

地里匿名用户
匿名用户-IZF9M  2025-2-6 09:54:44
本楼:   👍  0
0%
0%
0   👎
诺亚方舟R 发表于 2025-2-5 20:50
用普通的dfs (backtracking) 就行,这题本来是考dp的,为了不让你用dp就改了条件

那backtracking怎么存之前算过的状态呢?
回复

使用道具 举报

地里匿名用户
匿名用户-OI7T6  2025-2-6 15:12:45
本楼:   👍  0
0%
0%
0   👎
CurtisAAA 发表于 2025-2-5 22:57
base case里的: ret.append(cur[:]);  因为copy current path, 这步花的时间应该是O(M+N), 这一步不用算 ...

你说的是对的!大佬牛逼!
回复

使用道具 举报

地里匿名用户
匿名用户-UAMSL  2025-2-7 06:11:31
本楼:   👍  0
0%
0%
0   👎
返回的形式是坐标的list吗

评分

参与人数 1大米 +1 收起 理由
riverbank + 1 赞一个

查看全部评分

回复

使用道具 举报

地里匿名用户
匿名用户-IZF9M  2025-2-7 06:21:25
本楼:   👍  0
0%
0%
0   👎
匿名用户 发表于 2025-2-6 17:11
返回的形式是坐标的list吗

是路径类似于这种“RLUD...."
R:Right
L: Left
U:Up
D:Down
回复

使用道具 举报

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

本版积分规则

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