推荐:数据科学课程和书籍清单以及培训讲座


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 746|回复: 9
收起左侧

请教fb高频的面试题

[复制链接] |试试Instant~ |关注本帖
f1371342385 发表于 2017-6-28 16:02:33 | 显示全部楼层 |阅读模式

2017(4-6月) 码农类 硕士 全职@Facebook - 内推 - 技术电面 |Other在职跳槽

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
请问fb的高频面试题3sum这个大家都会,有没有那位大哥可以抛一下3sum的值可以重复使用的代码或者想法呀,感谢感谢
FightForTomo 发表于 2017-6-28 17:46:17 | 显示全部楼层
排序,然后遍历数组, 双指针。. Waral 鍗氬鏈夋洿澶氭枃绔,
有重复的话,就if nums[i] == nums[i-1] continue;
while循环的时候也是同样道理。
回复 支持 反对

使用道具 举报

 楼主| f1371342385 发表于 2017-6-29 01:36:17 | 显示全部楼层
FightForTomo 发表于 2017-6-28 17:46
排序,然后遍历数组, 双指针。. 1point3acres.com/bbs
有重复的话,就if nums == nums continue;
while循环的时候也是同样道理 ...

哥们,不是这个。是比如给你一个数组[-1, 1, 2] 结果应该是[-1, -1, 2] 和 [-1, 1, 2],因为值可以复用,也就是-1可以出现两次
回复 支持 反对

使用道具 举报

chris612ku 发表于 2017-6-29 02:16:51 | 显示全部楼层
這應該可以用dfs做吧? 類似combination sum的做法?
回复 支持 反对

使用道具 举报

aiweiwei 发表于 2017-6-29 02:45:41 | 显示全部楼层
暴力dfs啊  
回复 支持 反对

使用道具 举报

scredwood 发表于 2017-6-29 02:58:21 | 显示全部楼层
. 鍥磋鎴戜滑@1point 3 acres
for (int i = 0; i < len; i++)
   int j = i,  k = len-1;
   while (j <= k)  {
         ....
  }
}

这样不行吗? 就是把原来  j = i+1 变成 j = i,   while (j<k) 变成 j <= k..   

比如 1,2,3  target = 6. Waral 鍗氬鏈夋洿澶氭枃绔,
你可以 i = 1 的时候, j = 1, k = 2,     [2,2,3] 太大, k--,  变成 2,2,2 。
回复 支持 反对

使用道具 举报

 楼主| f1371342385 发表于 2017-6-29 03:14:26 | 显示全部楼层
scredwood 发表于 2017-6-29 02:58
for (int i = 0; i < len; i++).鐣欏璁哄潧-涓浜-涓夊垎鍦
   int j = i,  k = len-1;
   while (j

哥们你想法不错 我有一个问题啊 如果当sum = 0的时候 还是j++ k--吗 但是我写了代码 好像答案不太对 :(
回复 支持 反对

使用道具 举报

 楼主| f1371342385 发表于 2017-6-29 03:16:12 | 显示全部楼层
scredwood 发表于 2017-6-29 02:58. Waral 鍗氬鏈夋洿澶氭枃绔,
for (int i = 0; i < len; i++)
   int j = i,  k = len-1;
   while (j

试试 [-1, -1, 2] 正确答案应该是三次的[-1, -1, 2] 因为-1 可以复用
回复 支持 反对

使用道具 举报

scredwood 发表于 2017-6-29 04:52:01 | 显示全部楼层
f1371342385 发表于 2017-6-29 03:16
试试 [-1, -1, 2] 正确答案应该是三次的[-1, -1, 2] 因为-1 可以复用
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
重复使用数字和重复结果是两个不同的要求把
-1, -1, 2 ,  TARGET = 0
应该只能有一个结果

鏉ユ簮涓浜.涓夊垎鍦拌鍧.

三次 -1, -1, 2 就相当于, 你可以 -1(a), -1(b), 2,   -1(a), -1(a), 2,  -1(b), -1(b), 2
重复结果了。 如果要这样, 2 pointer确实无能为力了,老实DFS。
回复 支持 反对

使用道具 举报

 楼主| f1371342385 发表于 2017-6-29 09:35:08 | 显示全部楼层
scredwood 发表于 2017-6-29 04:52. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
重复使用数字和重复结果是两个不同的要求把
-1, -1, 2 ,  TARGET = 0
应该只能有一个结果

如果这样的话 您的应该是正确的 感谢感谢
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-8-23 07:00

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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