📣 Back to School开学季 - VIP通行证5折优惠!蓝莓、Offer多多同步优惠
回复: 23
跳转到指定楼层
上一主题 下一主题
收起左侧

非死不可面筋

全局:

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

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

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

x
刚挂电话,感觉面挂了。

国人小哥,上来发现回音有点严重,请面试官讲慢点。寒暄了两三句上题(背景音太大其实没听太清楚)
感觉像combination sum II变体,给了一个target,和一堆升序排好的数字,找出所有能组成target的结果。
例如:nums = {1, 2, 3}, target = 5
输出:{{1, 1, 1, 1, 1}, {2, 3}...}//每个数可以重复取,结果不能重复,例如{2,3}在结果里,{3, 2}不能在结果里
这里要注意的是,输入可能重复。会{1, 1, 1, 1, 2,
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
e/smiley/QQ/em25.gif" smilieid="107" border="0" alt="" />



补充内容 (2017-5-25 08:04):
今天说过了,国人果然给力。虽然big o有点差,算法效率有点低,不过看在bug free的份上,来onsite吧。炒鸡感动

上一篇:bloomberg非主流onsite 4轮
下一篇:vmware oa 面经

本帖被以下淘专辑推荐:

推荐
dzl199401 2017-5-23 21:46:12 | 只看该作者
全局:
lc上有一篇关于此类题目的总结很好,都是backtracking
https://discuss.leetcode.com/topic/46159/a-general-approach-to-backtracking-questions-in-java-subsets-permutations-combination-sum-palindrome-partitioning
回复

使用道具 举报

推荐
 楼主| mameko 2017-5-23 21:10:50 | 只看该作者
全局:
嘛,总体来说不难,就是一时脑残:

  1. public List<List<Integer>> combinationSum2(int[] candidates, int target) {
  2.                 List<List<Integer>> res = new ArrayList<>();
  3.                 if (candidates == null || candidates.length == 0) {
  4.                         return res;
  5.                 }

  6.                 ArrayList<Integer> tmp = new ArrayList<>();
  7.                 dfsHelper(tmp, res, target, 0, candidates);

  8.                 return res;
  9.         }

  10.         private void dfsHelper(ArrayList<Integer> tmp, List<List<Integer>> res, int target, int start, int[] candidates) {
  11.                 if (target == 0) {
  12.                         res.add(new ArrayList<>(tmp));
  13.                         return;
  14.                 }

  15.                 for (int i = start; i < candidates.length; i++) {
  16.                         if (i != start && candidates[i] == candidates[i - 1]) {
  17.                                 continue;
  18.                         }

  19.                         if (candidates[i] > target) {
  20.                                 break;
  21.                         }

  22.                         tmp.add(candidates[i]);
  23.                         dfsHelper(tmp, res, target - candidates[i], i, candidates);
  24.                         tmp.remove(tmp.size() - 1);
  25.                 }
  26.         }
复制代码
回复

使用道具 举报

🔗
NALTAYA 2017-5-23 08:35:50 | 只看该作者
全局:
不一定挂的,楼主。国人一般都挺好,而且这个只是电话面试。
回复

使用道具 举报

🔗
sfsttz 2017-5-23 08:43:11 | 只看该作者
全局:
他问“target大小是m,数组长度是n” 可能说明他想要dp做法
回复

使用道具 举报

🔗
smallwarm 2017-5-23 11:31:22 | 只看该作者
全局:
这题复杂度挺麻烦的。我觉得应该是这样, recursive的话 2^n   n并不是数组长度,假设  1,2,3.      target = 5,  那么问题转化为   {1,1,1,1,1,2,2,3} 里面任选一个。n就是转化后的长度吧。
回复

使用道具 举报

🔗
dynastyW2 2017-5-23 11:40:45 | 只看该作者
全局:
这个题不就是combination sum II 吗,只是给你升序sort好了。
怎么dp做?
回复

使用道具 举报

🔗
Mico 2017-5-23 12:14:39 | 只看该作者
全局:
dynamic programming啊
回复

使用道具 举报

🔗
metalstorm 2017-5-23 12:34:10 | 只看该作者
全局:
这题如果没见过的话,要一小时之内做出来是真不容易。而且还是电面。国人小哥有点狠。
回复

使用道具 举报

🔗
ecneralc 2017-5-23 12:39:45 | 只看该作者
全局:
什么dp,这不就是sort以后一个头指针,一个尾指针就好了嘛,在试下一个的时候跳过重复的数字,所以复杂度就是排序复杂度nlog(n)
回复

使用道具 举报

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

使用道具 举报

🔗
ecneralc 2017-5-23 13:58:06 | 只看该作者
全局:
ecneralc 发表于 2017-5-23 12:39
什么dp,这不就是sort以后一个头指针,一个尾指针就好了嘛,在试下一个的时候跳过重复的数字,所以复杂度就 ...

哦,看成2SUM了
回复

使用道具 举报

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

本版积分规则

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