Fall 18 我的 HCI 申请复盘与策略总结

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
H1B/绿卡遥遥无期
又不想回国
来东南亚最大的互联网集团工作?
码农求职神器Triplebyte:
不用海投
内推多家公司面试
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
查看: 6080|回复: 38
收起左侧

发一个yelp的skype电面面经,已跪

[复制链接] |试试Instant~ |关注本帖
我的人缘0
melody_qyao 发表于 2015-7-20 03:44:21 | 显示全部楼层 |阅读模式
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】

2015(7-9月) 码农类General 硕士 全职@Yelp - 网上海投 - 技术电面  | Fail | fresh grad应届毕业生

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

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

x
首先要吐槽一下yelp的HR和面试官,真的是我找工作这么久以来遇到的最差的!首先HR screen的时候,就是按着它准备好的题目问你,完全不care你说什么,全程没有互动交流。然后告诉你接下来有哪些流程,安排面试的时候速度极慢,一般是隔个两天给你回复约的时间,好不容易约好面试,再来说说面试官。面我的是一个意大利白人小哥,那口音真是醉了,全程面试不带笑,好像刚刚被老板骂过来面试一样。你回答什么,他也不互动,问一个garbage collection,非要问道最后你答不出来为止,还把你往错误的方向上引导。最后来说coding题吧,就是一个dart game,然后有一群possible scores,然后给你一个candidate score,问这个candidate score是不是可能的得分。For example:possible scores: [3,5,3,3,5] (有duplicates,unsorted,可能有很多很多possible score,不一定只有3和5)
candidate score: 6, yes
candidate score: 11, yes
candidate score: 7, no
candidate score: 0, yes
我感觉这题有点像leetcode combination sum那题,但是那题是用回溯求出所有可能解,这题是判断是否可以,想写个recursion的方法,试了几次还是弄不好,求各位大神帮忙。

评分

参与人数 4大米 +46 收起 理由
rengokantai + 3 n/a
neomiracle + 3 感谢分享!
whdawn + 30
lava555 + 10 感谢分享!

查看全部评分


上一篇:Bloomberg Onsite 回饋地裡
下一篇:求问 Amazon Fulfillment by Amazon 组的 Onsite 面经
我的人缘0
AndyLiu0429 发表于 2015-7-20 17:18:26 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
  1. public static boolean isValid(int[] scores, int candidate) {
  2.         if (candidate < 0) {. 1point3acres
  3.             return false;
  4.         }
  5. . more info on 1point3acres
  6.         boolean[] dp = new boolean[candidate + 1];
  7.         dp[0] = true;

  8.         for (int score : scores) {
  9.             for (int k = score; k <= candidate; k++) {
  10.                 dp[k] |= dp[k - score];. from: 1point3acres
  11.             }
  12.         }

  13.         return dp[candidate];
  14.     }
复制代码
dp可以解决吧。。不排序的话就是没法去重了。

评分

参与人数 1大米 +5 收起 理由
wcongying + 5 感谢分享!

查看全部评分

回复 支持 4 反对 1

使用道具 举报

我的人缘0
traceroute_su 发表于 2015-7-22 08:53:32 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
这应该是subset sum 问题吧
1. brute force的话 2^n
挨个选,选和不选 是两个选择对于每个数字来说,所以是2^n,iterative 位操作的话可以搞定,递归可以搞定。
2. dp 可以搞定 也就是背包问题 O(nC) n是需要的数字个数,也就是需要几个数字可以到达sum,C就是sum 这是个伪多项式解法,实质还是exponential的。
所以写哪个都可以。

dp方程: dp(i,j) 选i个数字,剩下j 的情况下是否是true
转移方程 dp(i,j) = dp(i+1,j-nums[i])|| dp(i+1,j)
意思就是选择当前数字和不选择当前数字的 or 操作
选择当然数字的话,数字index plus,sum减少,也就是j-nums[i]
不选当然数字的话,sum不减少,数字依旧plus
result就在dp(i,candidate), i 属于[0, num.length)
只要那一列存在了true,就是true
也就是说 那一列只要有数字可以凑成candidate就返回。


评分

参与人数 1大米 +2 收起 理由
alex007 + 2 思路清晰 赞一个

查看全部评分

回复 支持 3 反对 0

使用道具 举报

我的人缘0
FH9410 发表于 2015-7-20 16:42:15 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
        public boolean isPossible(int[] nums, int target) {
                if (nums == null || nums.length == 0) {
                        return false;
                }
.留学论坛-一亩-三分地                Arrays.sort(nums);
                return helper(nums, target, 0);
        }. 1point 3acres 论坛
       
        private boolean helper(int[] nums, int target, int pos) {
                if (target <= 0) {
                        return target == 0;
                }
               
                for (int i = pos; i < nums.length; i++) {
                        if (i != pos && nums[i] == nums[i - 1]) {
                                continue;
                        }
                        if (helper(nums, target - nums[i], i + 1)) {
                                return true;. Waral 博客有更多文章,
                        }
                }-google 1point3acres
                return false;
        }
回复 支持 2 反对 0

使用道具 举报

我的人缘0
neomiracle 发表于 2015-7-23 05:21:17 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
public class PossibleScore {
        static boolean res = false;. from: 1point3acres
        public static boolean possible(int[] input, int target){
                if(input == null || input.length == 0){
                        return false;
                }
                Arrays.sort(input);
                helper(input, target, 0);
                return res;
        }
. 牛人云集,一亩三分地
        private static void helper(int[] input, int target, int i) {
                if(res || target == 0){
                        res = true;
                        return;
                }.本文原创自1point3acres论坛
                if(i >= input.length || input[i] > target){
                        return;
                }
                helper(input, target - input[i], i);.1point3acres网
                helper(input, target, i + 1);
        }. from: 1point3acres
}
回复 支持 1 反对 0

使用道具 举报

我的人缘0
notturno 发表于 2015-7-21 01:06:08 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
这题还好吧,先sort,然后backtracking.本文原创自1point3acres论坛
如果start的值已经大于target,直接返回false(默认target是正数). 一亩-三分-地,独家发布

还有就是同一个得分能否重复使用. 1point 3acres 论坛
如果不能重复使用,就在dfs的循环里面加一个判断
如果可以重复使用,先把数组转存为一个没有duplicate的list
回复 支持 0 反对 1

使用道具 举报

我的人缘0
 楼主| melody_qyao 发表于 2015-7-20 05:00:11 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
暂时写出来了一个recursion的方法,仅供大家参考。ps递归参数里面选择boolean[]而不是boolean的原因是单个布尔值不好传回来,所以用布尔数组代替。

       public static boolean Solution(int[] scores, int candidate){. 留学申请论坛-一亩三分地
                if(candidate<0)
                        return false;
                boolean[] flag = new boolean[1];
. Waral 博客有更多文章,                return helper(scores, candidate, 0, flag);
        }
        public static boolean helper(int[] scores, int candidate, int pos, boolean[] flag){
                if(candidate == 0)
                        flag[0] = true;. 牛人云集,一亩三分地
                for(int i=pos; i<scores.length; i++){                        . 一亩-三分-地,独家发布
                        if(candidate < 0)
                                return false;
                        if(flag[0]) break;. 围观我们@1point 3 acres
                        candidate -= scores[i];. 1point 3acres 论坛
                        helper(scores, candidate, i, flag);                       
                        candidate += scores[i];. visit 1point3acres for more.
                }
                return flag[0];
        }
回复 支持 反对

使用道具 举报

我的人缘0
brian1118 发表于 2015-7-20 08:15:17 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
應該還是要把possible scores sort過,這樣在helper的for loop裡面可以跳過已經用過的值.留学论坛-一亩-三分地

while(i < scores.length - 1 && scores[i] == scores[i+1]) ++i;
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

我的人缘0
zws0818 发表于 2015-7-20 10:15:25 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
yao, 你申的是new grad职位吗?是网申还是内推的啊?
回复 支持 反对

使用道具 举报

我的人缘0
stellari 发表于 2015-7-20 12:11:08 | 显示全部楼层
  此人我要顶:
 
100% (3) 【我投】
  此人我要踩:
 
0% (0) 【我投】
请问candidate score是可以在possible scores中任意挑选数字组成,还是说必须选择相邻的一些数字?
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| melody_qyao 发表于 2015-7-20 14:26:39 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
stellari 发表于 2015-7-20 12:11
请问candidate score是可以在possible scores中任意挑选数字组成,还是说必须选择相邻的一些数字?

任意挑选数字
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| melody_qyao 发表于 2015-7-20 14:28:44 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
brian1118 发表于 2015-7-20 08:15
應該還是要把possible scores sort過,這樣在helper的for loop裡面可以跳過已經用過的值
-google 1point3acres
while(i < scor ...

恩,忘了说我这里偷懒了,假设的input scores是sorted && no duplicates,然后for loop那里注意我是从pos开始的,而每次递归调用helper时传入的参数是新的i
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| melody_qyao 发表于 2015-7-20 14:29:02 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
zws0818 发表于 2015-7-20 10:15. more info on 1point3acres
yao, 你申的是new grad职位吗?是网申还是内推的啊?

new grad,自己勾搭的HR,没有内推
回复 支持 反对

使用道具 举报

我的人缘0
zws0818 发表于 2015-7-20 23:23:48 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
melody_qyao 发表于 2015-7-20 14:29
new grad,自己勾搭的HR,没有内推

HR你从哪里找到的?
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| melody_qyao 发表于 2015-7-21 02:32:28 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
zws0818 发表于 2015-7-20 23:23
HR你从哪里找到的?

Linkedin
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| melody_qyao 发表于 2015-7-21 02:34:46 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
FH9410 发表于 2015-7-20 16:42. more info on 1point3acres
public boolean isPossible(int[] nums, int target) {. 1point 3acres 论坛
                if (nums == null || nums.length == 0) {
                         ...
. From 1point 3acres bbs
for loop里面的递归调用那里,应该是i而不是i+1吧,因为每个possible score都是可以重复用无数次的
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| melody_qyao 发表于 2015-7-21 02:37:07 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
notturno 发表于 2015-7-21 01:06
. 1point3acres这题还好吧,先sort,然后backtracking
如果start的值已经大于target,直接返回false(默认target是正数).留学论坛-一亩-三分地
...

不是什么难题,但我递归写不好,所以卡了很久
回复 支持 反对

使用道具 举报

我的人缘0
nano 发表于 2015-7-21 04:21:18 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
谢谢分享,题目真的是思路不难,写起来一遍bug free很不容易
没有大米给楼主了,分享一个c++ dp解法
  1. #include <iostream>
  2. #include <vector>. more info on 1point3acres
  3. #include <unordered_set>. from: 1point3acres
  4. #include <string.h>

  5. using namespace std;

  6. bool isPossible(int total_score, vector<int> score_list){
  7. if(total_score<=0)
  8. return total_score==0;

  9. unordered_set<int> score_pool(score_list.begin(),score_list.end());
  10. bool *valid_score=new bool[total_score+1];
  11. memset(valid_score,0,total_score+1);
  12. valid_score[0]=1;

  13. for(int i=1;i<=total_score;++i){
  14.         for(int j=0;j<i;++j){
  15.                 if(valid_score[j])
  16.                 valid_score[i]=(score_pool.find(i-j)!=score_pool.end());
  17.                 if(valid_score[i])
  18.                 break;
  19.         }
  20. }
  21. . more info on 1point3acres
  22. return valid_score[total_score];
  23. }

  24. int main() {
  25.         vector<int> score_list({3,5,3,3,5});
  26.         int total_score_list[]={6,11,7,0};
  27.        
  28.         for(int i=0;i<sizeof(total_score_list)/sizeof(int);++i){. 一亩-三分-地,独家发布
  29.                 if(isPossible(total_score_list[i],score_list))
  30.                 cout<<"candidate score: "<<total_score_list[i]<<", yes"<<endl;
  31.                 else
  32.                 cout<<"candidate score: "<<total_score_list[i]<<", no"<<endl;
  33.         }. 1point 3acres 论坛
  34.         return 0;
  35. }
复制代码
回复 支持 反对

使用道具 举报

我的人缘0
neomiracle 发表于 2015-7-23 00:58:37 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
感觉这个题解法基本上和经典硬币题思路一样
回复 支持 反对

使用道具 举报

我的人缘0
chendanlan 发表于 2015-7-23 05:45:03 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
题主有在hacker rank做题目吗? 那个题目能够搜索网页做吗
回复 支持 反对

使用道具 举报

游客
请先登录

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

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

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

custom counter

GMT+8, 2018-6-20 06:24

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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