一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
电商初创公司Good Days
招聘SDE/UI/TPM等职位实习生
把贵司招聘信息放这里
查看: 3212|回复: 4
收起左侧

发个Houzz的跪经吧

[复制链接] |试试Instant~ |关注本帖
stevez 发表于 2016-6-4 05:51:49 | 显示全部楼层 |阅读模式

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

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

x
感觉地里他们家面经不多,也是属于初创的Unicorn公司,看里面的人都很牛的样子。
LZ是3月底海投的,岗位是Unity Engineer,一直没有消息。半个月后直到他们recruiter给我打电话,原来是把我邮箱搞错了=_=
然后约了第一轮电面,上来一阵寒暄,然后开始做题
1. two sum, 只要返回任意一个组合就行,还是排好序无重复的那种,瞬秒。
2. three sum,我说先挑一个数字然后再用2sum,他说不错,还能不能更快,要我写个nlogn的写法, lz当时也是懵逼了。他提示说我能不能用binary search的思路去找后面两个sum,我想了下好像也没法logn啊。。墨迹半天没搞出来,然后他说那跳过吧。。。
然后问了个UI设计题:说要在Unity里做一个有一百万条的菜单,还有filter能选择相应的菜系,问怎么设计。
最后问了下你觉得5-10年以后的家装app应该是什么样,然后lz一顿扯。。他说不错我们就是打算做这个...
因为一个题没做出来,lz面完以后还是很懵逼,去wiki了下好像3sum nlogn解法是要用FFT的,明显和他想说的不太一样。。。. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
然后两个小时以后发来邮件约第二轮电面。
面试那天lz状态不是很好,上来第一题是判断两个矩形是否相交。lz很2的在想如何靠矩形对角两个点的关系判断,还漏了两种情况,代码也很丑。。后来一看好像lc里面有个easy题和这个类似的。。lz还做过。。
然后面了个Unity的代码题,问怎么样写一个bouncing ball,写完以后被提示了两次才改完所有的bug。。此时已经1小时10分钟了。面试官还是很给面子的,无奈当时水平实在太烂了。。。
然后第二天邮件通知,不出所料的跪了.1point3acres缃

大米,然后希望有Unity相关经验的同学可以试着投投哈,感觉他们还是很想招人的。. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

评分

2

查看全部评分

本帖被以下淘专辑推荐:

  • · Houzz|主题: 38, 订阅: 4
 楼主| stevez 发表于 2016-6-4 05:54:43 | 显示全部楼层
好像发错版了。。。这个能移动到面经版么。。
回复 支持 反对

使用道具 举报

jerryyu3000 发表于 2016-6-27 13:27:46 | 显示全部楼层
樓主好人 好人一生平安
回复 支持 反对

使用道具 举报

liu.haonan 发表于 2016-10-17 08:35:31 | 显示全部楼层
这个我好像以前写过,就是用binary search在查找的时候稍微优化一下。
  1. public class Solution {
  2.     public List<List<Integer>> threeSum(int[] nums) {
  3.         List<List<Integer>> res = new LinkedList<>();
  4.         Arrays.sort(nums);
  5.         if (nums == null || nums.length < 3) return res;
  6.         int curi = Integer.MAX_VALUE;
  7.         for (int i = 0; i < nums.length - 2; i++){
  8.             if (curi == nums[i]) continue;
  9.             curi = nums[i];
  10.             int target = 0 - nums[i];
  11.             int h = i+1, t = nums.length - 1;
  12.             if (nums[i+1] + nums[i+2] > target) break;. from: 1point3acres.com/bbs
  13.             if (nums[nums.length - 2] + nums[nums.length - 1] < target ) continue;
  14.             int curh = Integer.MAX_VALUE;
  15.             int curt = Integer.MIN_VALUE;
  16.             while (h < t){
  17.                 if (h == -1 || t == -1) break;
  18.                 //System.out.println("i = "+ i + ", curh: "+ curh + ", " + nums[i]+ "+" + nums[h] + "+" + nums[t] + "=" + (nums[h] + nums[t]) + ", target = " + target);
  19.                 curh = nums[h];
  20.                 curt = nums[t];. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  21.                 if (nums[h] + nums[t] == target){
  22.                     List<Integer> cbn = new LinkedList<>();
  23.                     cbn.add(nums[i]);
  24.                     cbn.add(nums[h]);
  25.                     cbn.add(nums[t]);
  26.                     res.add(cbn);. From 1point 3acres bbs

  27.                     while (h < t && (nums[h] == curh && curt == nums[t])){
  28.                       h++;
  29.                     }
  30.                     while (h < t &&  curt == nums[t]){
  31.                        t--;
  32.                     }
  33.                 } else if ( nums[h] + nums[t] > target){. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  34.                     t = helper2(nums, h+1, t, target - curh);
  35.                 } else {
  36.                     h = helper1(nums, h, t-1, target - curt);
  37.                 }
  38.             }
  39.         }. 1point3acres.com/bbs
  40.         return res;
  41.     }
  42.     . visit 1point3acres.com for more.
  43.     public int helper1(int[] nums, int start, int end, int target){
  44.         int h = start;
  45.         int t = end;
  46.         while (h + 1 < t){
  47.             int mid = h + (t - h)/2;
  48.             if (nums[mid] >= target){
  49.                 t = mid;
  50.             }
  51.             else if (nums[mid] < target) h = mid;
  52. . 1point 3acres 璁哄潧
  53.         }
  54.         if (nums[h] >= target){
  55.             return h;
  56.         } . from: 1point3acres.com/bbs
  57.         if (nums[t] >= target){
  58.             return t;
  59.         }
  60.         return -1;
  61.     }
  62.     public int helper2(int[] nums, int start, int end, int target){
  63.         int h = start;
  64.         int t = end;. 鍥磋鎴戜滑@1point 3 acres
  65.         while (h + 1 < t){
  66.             int mid = h + (t - h)/2; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  67.             if (nums[mid] <= target){
  68.                 h = mid;
  69.             }
  70.             else if (nums[mid] > target) t = mid;. Waral 鍗氬鏈夋洿澶氭枃绔,
  71.         }
  72.         if (nums[t] <= target){
  73.             return t;
  74.         }
  75.         if (nums[h] <= target){
  76.             return h;
  77.         }
  78.         return -1;
  79.     }
  80. }
复制代码
. 1point3acres.com/bbs
补充内容 (2016-10-17 08:36):
代码巨丑 = =。。
. 1point3acres.com/bbs
补充内容 (2016-10-17 08:36):
各位凑合看一下
回复 支持 反对

使用道具 举报

 楼主| stevez 发表于 2016-10-17 14:07:50 | 显示全部楼层
liu.haonan 发表于 2016-10-17 08:35. 1point3acres.com/bbs
这个我好像以前写过,就是用binary search在查找的时候稍微优化一下。

思路不错,但是本质上还是n方的,在2sum部分,你把本来t+1, h-1的constant time的操作变成了一个logn的操作,得到了一个lower/upper bound。一来一去是一样的。
其实k-sum问题的最低复杂度很早有人证明过,不可能低于n^ceil(k/2)。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-12-18 01:26

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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