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

Facebook电面

🔗
cupcupcup 2016-2-19 23:27:34 | 只看该作者
全局:
想问一下边界条件sum = 0是指什么?
回复

使用道具 举报

🔗
Jester_Z 2016-2-20 00:48:48 | 只看该作者
全局:
woshixuyoudan 发表于 2016-2-19 23:27
想问一下边界条件sum = 0是指什么?

我理解的是这样  比如数组 1,2,3 如果你要找的那个target = 0
然后你用acc来记录累积的和 这样acc-target就一直存在于哈希表里 就会返回true  但是这样是不对的
回复

使用道具 举报

🔗
dimi 2016-8-21 06:17:31 | 只看该作者
全局:
45分钟两个题目很难啊
回复

使用道具 举报

🔗
jiya 2016-9-3 10:58:41 | 只看该作者
全局:
  1. (taili, tailj) * * * * * * * * *
  2. * * * * * * * * * * * * * * * *
  3. * * * * * * * * * * * * * * * *
  4. * * * * * * * * *(headi, headj)

  5. return subMatrixSum(cumMatrix, 0, 0, 0, 0);

  6. boolean subMatrixSum(int[][] cum, int headi, int headj, int taili, int tailj, int target) {
  7.         if (headi < taili || headj < tailj) {
  8.                 return false;
  9.         }
  10.         int sum = subsum(cum, headi, headj, taili, tailj);
  11.         if (sum == target) {
  12.                 return true;
  13.         } else if (sum > target) {
  14.                 return subMatrixSum(cum, headi, headj, taili + 1, tailj, target) || sumMatrixSum(cum, headi, headj, taili, tailj + 1, target);
  15.         } else {
  16.                 return sumMatrixSum(cum, headi + 1, headj, taili, tailj) || sumMatrixSum(cum, headi, headj + 1, taili, tailj, target);
  17.         }
  18. }
复制代码


重排一下前面的代码
回复

使用道具 举报

🔗
jiya 2016-9-3 11:09:53 | 只看该作者
全局:
  1. return subMatrixSum(cumMatrix, 0, 0, 0, 0);

  2. Map<String, Boolean> dp = new HashMap<String, Boolean>();
  3. boolean subMatrixSum(int[][] cum, int headi, int headj, int taili, int tailj, int target) {
  4.         String key = headi + ":" + headj + ":" + taili + ":" + tailj;
  5.         if (map.containsKey(key)) {
  6.                 return map.get(key);
  7.         } else {
  8.                 boolean res = false;
  9.                 if (headi < taili || headj < tailj) {
  10.                         res = false;
  11.                 } else {
  12.                         int sum = subsum(cum, headi, headj, taili, tailj);
  13.                         if (sum == target) {
  14.                                 res = true;
  15.                         } else if (sum > target) {
  16.                                 res = subMatrixSum(cum, headi, headj, taili + 1, tailj, target) || sumMatrixSum(cum, headi, headj, taili, tailj + 1, target);
  17.                         } else {
  18.                                 res = sumMatrixSum(cum, headi + 1, headj, taili, tailj) || sumMatrixSum(cum, headi, headj + 1, taili, tailj, target);
  19.                         }
  20.                 }
  21.                 map.put(key, res);
  22.                 return res;
  23.         }
  24. }
复制代码


可以用DP优化一下,但是感觉复杂度还是O(n^4)
回复

使用道具 举报

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

使用道具 举报

🔗
yeyelovenimo 2016-10-16 05:09:47 | 只看该作者
全局:
lintcode的subarray sum和submatrix sum吧
回复

使用道具 举报

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

使用道具 举报

🔗
f1371342385 2017-6-2 12:02:25 | 只看该作者
全局:
appleiiiii 发表于 2017-2-25 06:06
preprocess sum(i, j) which is the sum of all numbers from (0, 0) to (i, j), and use hashmap to store ...

你这个算出来的结果不是一个矩形把
回复

使用道具 举报

🔗
edyyy 2017-6-2 12:15:56 | 只看该作者
全局:
这三哥也太狠了,实习生写这个题
回复

使用道具 举报

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

本版积分规则

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