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

狗家高频面经求解

🔗
匿名用户-L6X04  2021-6-16 13:37:00 |倒序浏览

2021(7-9月) 码农类General 本科 全职@google - 猎头 - Onsite  | | Other | 其他

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

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

x
看到这题很多次: 从第一行任意一个位置到最后一行
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
讲解dp的思路..

评分

参与人数 1大米 +2 收起 理由
匿名用户-KFQR8 + 2

查看全部评分


上一篇:蓝鸟店面
下一篇:Compass跪经
推荐
Falldawn 2021-6-17 06:13:34 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies

评分

参与人数 1大米 +2 收起 理由
Gina29 + 2 给你点个赞!

查看全部评分

回复

使用道具 举报

全局:
本帖最后由 lrj121360924 于 2021-6-17 05:40 编辑
  1. int n = ch.length;
  2.             int m = ch[0].length;
  3.             int[][] dp = new int[n][m];
  4.             for (int i = 0; i < n; i++) {
  5.                 for (int j = 0; j < ch[i].length; j++) {
  6.                     if (ch[i][j] == '.') {
  7.                         int k = j + 1;
  8.                         int num = 1;
  9.                         while (k < m && ch[i][k] == '.') {
  10.                             k++;
  11.                             num++;
  12.                         }
  13.                         while (j < k) {
  14.                             dp[i][j] = num;
  15.                             j++;
  16.                         }
  17.                     }
  18.                 }
  19.             }
  20.             for (int i = 1; i < n; i++) {
  21.                 for (int j = 0; j < m; j++) {
  22.                     if (ch[i][j] == '.') {
  23.                         if (ch[i - 1][j] == '.') {
  24.                             dp[i][j] = dp[i - 1][j] + dp[i][j];
  25.                         } else {
  26.                             if (j >= 1)
  27.                                 dp[i][j] = Math.max(dp[i][j - 1], 0);
  28.                             else
  29.                                 dp[i][j] = 0;
  30.                         }
  31.                     }
  32.                 }
  33.             }
复制代码
[i][i][i][i][i][i][i][i][i]
我这样试了一下,大家看下对吗。
最后在dp最后一行筛选最大返回
[/i][/i][/i][/i][/i][/i][/i][/i][/i]
回复

使用道具 举报

🔗
pbw 2021-6-16 16:14:06 来自APP | 只看该作者
全局:
关注一下~
回复

使用道具 举报

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

使用道具 举报

本楼:
全局:
感谢!!!!!
回复

使用道具 举报

🔗
LeanVPHO 2021-6-17 06:50:07 | 只看该作者
全局:
狗 电面就是遇到的这道题 相见恨晚
回复

使用道具 举报

🔗
DwightSchrute 2021-6-18 22:39:05 | 只看该作者
全局:
dijkstra可以不可以实现这个算法呢?每个点的长度作为weight?
回复

使用道具 举报

🔗
georgeqi 2021-7-1 12:37:51 | 只看该作者
全局:

评分

参与人数 1大米 +1 收起 理由
CharlesYD + 1 感谢!!

查看全部评分

回复

使用道具 举报

🔗
kikiisme0201 2021-7-10 22:21:19 | 只看该作者
全局:
Falldawn 发表于 2021-6-17 06:13
这上面有人说了,感觉就应该是这样做,我改成了Java代码三个数组应该是分别代表从最上面entry行到当前位 ...

按照我的理解可以节省空间而不需要建立一个(m, n)的数组, 因为每次只需要关注连着的两行, 可以节省空间到O(n)
回复

使用道具 举报

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

本版积分规则

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