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

Uber 新鲜面经,估计挂了,不报希望。

全局:

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

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

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

x
刚电面的Uber,从来没见过的题目,挂了估计,难受,Uber算是最想去的公司吧。在地里也算刷了一段时间,回报大家。大概意思是两个log, log1, log2, merge成一个log
log1
timest
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Popular Interview Questions from Top Companies
辑有问题。最后run代码的时候又一直有语法错误。白人小哥很耐心,可我的表现实在太差。没戏了肯定是。各位大神们好好分析,希望能帮到别人吧。

评分

参与人数 2大米 +80 收起 理由
whdawn + 30
加州刺史白十五 + 50 感谢分享!

查看全部评分


上一篇:请问有人面过Expedia onsite吗?
下一篇:Yelp 电面 20160531
推荐
captor 2016-6-2 02:36:44 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Popular Interview Questions from Top Companies
回复

使用道具 举报

推荐
陈润鹏 2016-6-16 11:44:29 | 只看该作者
全局:
  1. package uber;

  2. import java.sql.Date;
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.HashMap;

  6. import leetcode.Q10;
  7. import sun.util.logging.resources.logging;

  8. /*
  9. * http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=192016&pid=2471458&page=1&extra=page%3D1%26filter%3Dsortid%26sortid%3D311#pid2471458
  10. * 这题描述的不太清楚
  11. * log1.
  12. * timestamp : num of driver
  13. * 1:00       5
  14. * 2:15       7
  15. * 3:00      20.

  16. * log2
  17. * 1:05     3
  18. * 2: 20    8
  19. * 3:00     5.

  20. * combined
  21. * 1:00     5
  22. * 1:05     8
  23. * 2:15   10
  24. * 2:20   15
  25. * 3:00   25
  26. *
  27. * 如果 没有交集就不用求和
  28. */
  29. public class MergeLog {

  30.         public int[][] merge(int[][] log1, int[][] log2) {
  31.                 int ptr1 = 0;
  32.                 int ptr2 = 0;
  33.                 int preselect = 0;
  34.                 int preval = 0;
  35.                 ArrayList<int[]> reslist = new ArrayList<int[]>();
  36.                 while (ptr2 < log2.length || ptr1 < log1.length) {
  37.                         if (ptr2 >= log2.length
  38.                                         || (ptr1 < log1.length && ptr2 < log2.length && log1[ptr1][0] < log2[ptr2][0])) {
  39.                                 preval = preselect == 1 ? 0 : preval;
  40.                                 reslist.add(new int[] { log1[ptr1][0], preval + log1[ptr1][1] });
  41.                                 preselect = 1;
  42.                                 preval = log1[ptr1][1];
  43.                                 ptr1++;
  44.                         } else if (ptr1 >= log1.length
  45.                                         || (ptr1 < log1.length && ptr2 < log2.length && log2[ptr2][0] < log1[ptr1][0])) {
  46.                                 preval = preselect == 2 ? 0 : preval;
  47.                                 reslist.add(new int[] { log2[ptr2][0], preval + log2[ptr2][1] });
  48.                                 preselect = 2;
  49.                                 preval = log2[ptr2][1];
  50.                                 ptr2++;
  51.                         } else if (log2[ptr2][0] == log1[ptr1][0]) {
  52.                                 reslist.add(new int[] { log2[ptr2][0],
  53.                                                 log2[ptr2][1] + log1[ptr1][1] });
  54.                                 preselect = 0;
  55.                                 preval = 0;
  56.                                 ptr2++;
  57.                                 ptr1++;
  58.                         }
  59.                 }

  60.                 int[][] res = new int[reslist.size()][2];
  61.                 for (int i = 0; i < reslist.size(); i++)
  62.                         res[i] = reslist.get(i);
  63.                 return res;
  64.         }

  65.         public static void main(String[] args) {
  66.                 MergeLog mergeLog = new MergeLog();
  67.                 System.out.println(Arrays.deepToString(mergeLog.merge(new int[][] {
  68.                                 { 0, 5 }, { 2, 7 }, { 4, 20 } }, new int[][] { { 1, 3 },
  69.                                 { 3, 8 }, { 5, 5 } })));
  70.                 // [[0, 5], [1, 8], [2, 10], [3, 15], [4, 28], [5, 25]]

  71.                 System.out.println(Arrays.deepToString(mergeLog.merge(new int[][] {
  72.                                 { 0, 5 }, { 2, 7 }, { 5, 20 } }, new int[][] { { 1, 3 },
  73.                                 { 3, 8 }, { 5, 5 } })));
  74.                 // [[0, 5], [1, 8], [2, 10], [3, 15], [5, 25]]

  75.                 System.out.println(Arrays.deepToString(mergeLog.merge(new int[][] {
  76.                                 { 0, 5 }, { 2, 7 }, { 3, 3 }, { 5, 20 } }, new int[][] {
  77.                                 { 1, 3 }, { 4, 8 }, { 5, 5 } })));
  78.                 // [[0, 5], [1, 8], [2, 10], [3, 3], [4, 11], [5, 25]]

  79.                 System.out.println(Arrays.deepToString(mergeLog.merge(new int[][] {
  80.                                 { 0, 5 }, { 2, 7 }, { 5, 20 } }, new int[][] { { 1, 3 },
  81.                                 { 3, 8 }, { 5, 5 }, { 6, 8 } })));
  82.                 // [[0, 5], [1, 8], [2, 10], [3, 15], [5, 25], [6, 8]]

  83.                 System.out.println(Arrays.deepToString(mergeLog.merge(new int[][] {
  84.                                 { 0, 5 }, { 2, 7 }, { 5, 20 }, { 6, 6 } }, new int[][] {
  85.                                 { 1, 3 }, { 3, 8 }, { 5, 5 }, { 6, 8 } })));
  86.                 // [[0, 5], [1, 8], [2, 10], [3, 15], [5, 25], [6, 14]]

  87.                 System.out.println(Arrays.deepToString(mergeLog.merge(new int[][] { {
  88.                                 0, 5 } }, new int[][] {})));

  89.                 System.out.println(Arrays.deepToString(mergeLog.merge(new int[][] { {
  90.                                 0, 5 } }, new int[][] { { 0, 5 } })));

  91.                 System.out.println(Arrays.deepToString(mergeLog.merge(new int[][] {},
  92.                                 new int[][] { { 0, 5 } })));

  93.         }
  94. }
复制代码

补充内容 (2016-6-16 12:19):
LZ这题其实真的很难, 辛苦LZ的 还有机会的 祝好运
回复

使用道具 举报

推荐
dfnjy 2016-7-13 05:39:58 | 只看该作者
全局:
  1. vector<pair<string,int>> itry(vector<int> n1,vector<int> n2,vector<string> t1,vector<string> t2){
  2.     int _n1=0,_n2=0;
  3.     int i=0,j=0;
  4.     t1.push_back("~");t2.push_back("~");
  5.     vector<pair<string,int>> result;
  6.     while (i<n1.size()-1 || j<n2.size()-1){
  7.         if (t1[i]>t2[j]){
  8.             result.push_back(make_pair(t2[j],n2[j]+_n1));
  9.             _n2=n2[j++];
  10.         }
  11.         else if (t1[i]<t2[j]){
  12.             result.push_back(make_pair(t1[i],n1[i]+_n2));
  13.             _n1=n1[i++];
  14.         }
  15.         else{
  16.             result.push_back(make_pair(t1[i],n1[i]+n2[j]));
  17.             _n1=n1[i];_n2=n2[j];
  18.             i++;j++;
  19.         }
  20.     }
  21.     return result;
  22. }
复制代码

只测了那一个case
菜鸡瞎写一通大神轻喷
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

全局:
onsite也遇到过这道题,如果输入只有两个log的话,可以用两个指针ptr1,ptr2分别遍历两个log,循环每次取ptr1或ptr2中较小的timestamp并计算结果加入result
回复

使用道具 举报

🔗
hkc593 2016-6-1 23:41:24 | 只看该作者
全局:
可以直接先merge了,lz的那个例子的就是 T= [5,3,7,8,25]. 如果第i个timestamp没有在两个log中都出现的话,就update T[i] = T[i] + T[i-1]. T‘ = [5, 8 , 10, 15, 25]
回复

使用道具 举报

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

使用道具 举报

🔗
cx101220012 2016-6-2 06:14:59 | 只看该作者
全局:
这是道考验基本功的题呀
回复

使用道具 举报

全局:
加州刺史白十五 发表于 2016-6-2 05:22
如果两个log完全没有交集怎么处理?
比如:
Log1 [1:00, 3;

如果没有交集的话就不用求和了,直接把timestamp加到结果里就好。
回复

使用道具 举报

🔗
blackrose 2016-6-7 22:13:29 | 只看该作者
全局:
这个就是mergesort 吧,设置一个prev = 0, prev记录上一个merge进去的 number。
回复

使用道具 举报

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

本版积分规则

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