周末了,八卦下什么是好的manager

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货

最近看过此主题的会员

E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
码农求职神器Triplebyte:
不用海投
内推多家公司面试
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
查看: 3022|回复: 13
收起左侧

Uber 电面+onsite

[复制链接] |试试Instant~ |关注本帖
我的人缘0
ThinkDeeper2 发表于 2017-7-28 22:38:42 | 显示全部楼层 |阅读模式
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (4)
 
 
0% (0)  踩

2017(7-9月) 码农类General 本科 全职@Uber - 内推 - 技术电面 Onsite  | Fail | 在职跳槽

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

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

x
电面是 insert_into_cycle_linked_list.html: https://moonlightsd.gitbooks.io/ ... le_linked_list.html

onsite:
1. 给出 [“1999-02-13”, “2001-03-14"] 打印出中间所有的月份 [“1999-02-13”, “1999-02-28"],[“1999-03-01”, “1999-03-31"] ...  ["2001-03-01", “2001-03-14"]
当然input可以是任意年月日。要求当场能运行,中间有问题不回答, 让自己查 google 和 stackoverflow. 最后code都没有写完,更别提其它的了。我写的时候也没有什么技巧,就是各种判断和打印, 但边界条件过多,相同的年份,月份,起始月份,结束月份。。。在这里请教高手指点clean 的程序。. 围观我们@1point 3 acres
2.  https://leetcode.com/problems/ma ... -k/tabs/description
3. design typehead, 实现trienode 和 trie 类 还有buildTrie 和 searchTrieLeafNode方法
4. hc聊一下 why uber, why leave your current job.
5. design pokemonGo. pokemonGo有三个要求,显示pokemonStop, spinpokeMonstop, catchPokemon. 在提到要把pokemonStop信息存储的时候,卡住了。因为pokemonstop的数目很多要多台DB, 如何sharding成了问题。如果按照id sharding,用坐标查询附近的stop就很麻烦。如果按城市存储,查询的坐标正好落在城市边缘就要去另外一个数据库查询。如果DB存一些周围城市stop 的duplication, consistence 就成了问题。请高手指点如何存储stop 的信息并且方便按cutomer的位置进行快速的查询。. visit 1point3acres for more.

评分

参与人数 1大米 +50 收起 理由
candy_shmily + 50

查看全部评分


上一篇:pocket gems 电面1
下一篇:哎妈今天是挂了Google店面

本帖被以下淘专辑推荐:

  • · uber|主题: 31, 订阅: 3
我的人缘0
luobo 发表于 2017-7-29 14:31:18 | 显示全部楼层
本楼: 【顶】   100% (1)
 
 
0% (0)   【踩】
全局: 顶  100% (10)
 
 
0% (0)  踩
        LocalDate end = LocalDate.of(2001, 03, 14);. visit 1point3acres for more.
        LocalDate start = LocalDate.of(1999, 02, 13);
. more info on 1point3acres        LocalDate nextDay = start;
        while (nextDay.isBefore(end) || nextDay.equals(end)) {
                System.out.print(nextDay);
                nextDay = nextDay.with(lastDayOfMonth());
                if (nextDay.isBefore(end)) {
                        System.out.print("--" + nextDay);
                        System.out.println();
                }
                nextDay = nextDay.plusDays(1);
        }
        if (nextDay.isAfter(end)) System.out.print("--" + end);
        System.out.println();
回复

使用道具 举报

我的人缘0
jingshihao 发表于 2017-7-28 22:48:35 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (17)
 
 
0% (0)  踩
感觉system design好像很难的样子,请问楼主如果是new grad会考这么难的system design吗?
回复

使用道具 举报

我的人缘0
 楼主| ThinkDeeper2 发表于 2017-7-29 07:05:36 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (4)
 
 
0% (0)  踩
第一题应该用 import java.time.LocalDate;
回复

使用道具 举报

我的人缘0
风华义气 发表于 2017-7-29 09:02:39 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  0% (0)
 
 
0% (0)  踩
为啥感觉面试的时候好难啊
回复

使用道具 举报

我的人缘0
saklyn 发表于 2017-7-29 11:52:07 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  92% (79)
 
 
7% (6)  踩
第一题有个方法:提前做好每年每个月的表格,就用自带的函数,比如python的datetime。出来[“1999-01-01“, “1999-01-31“]...["2001-12-01", "2001-12-31"],然后直接滤掉时间结尾在在[“1999-02-13“]之前和开头在["2001-03-14"]之后的。剩下了[“1999-02-01“, “1999-02-28“]...["2001-03-01", "2001-03-31"]。然后比较[“1999-02-13“]和第一个的开始,即[“1999-02-01“],因为不相等,故代替。再比较["2001-03-14"]和最后一个的结束,即["2001-03-31"],因为不想等,故代替。
回复

使用道具 举报

我的人缘0
sterne 发表于 2017-7-30 12:48:29 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (13)
 
 
0% (0)  踩
请问楼主面的哪个组?感觉偏难
回复

使用道具 举报

我的人缘0
sterne 发表于 2017-7-30 13:09:23 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (13)
 
 
0% (0)  踩
sterne 发表于 2017-7-30 12:48. 1point3acres
请问楼主面的哪个组?感觉偏难

最后一题, PokemonGo sharding 问题,跟facebook shard friendship graph类似。 如何把朋友关系放到不同的machine上,FB的解决方案是TAO + Dragon(Social Hash)。sharding key我觉得可以用geohash. https://code.facebook.com/posts/ ... graph-query-engine/
Mobile Apps Category (English)728x90
回复

使用道具 举报

我的人缘0
endofunctor 发表于 2017-7-30 14:33:20 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  95% (21)
 
 
4% (1)  踩
最后一题可以用Geohashing存stop + quad tree存地形吗?render的时候同时读stop geolocation和地形。
一个想法不一定对
回复

使用道具 举报

我的人缘0
endofunctor 发表于 2017-8-4 16:39:30 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  95% (21)
 
 
4% (1)  踩
试着写了下第一题(没重构过,写的比较丑)。。。
  1. vector<pair<string, string> > getSpan(const string& start, const string& end) {
  2.   int i = 0;
  3.   int year_start;. 留学申请论坛-一亩三分地
  4.   int month_start;
  5.   int day_start;
  6.   int year_end;
  7.   int month_end;. 留学申请论坛-一亩三分地
  8.   int day_end;
  9.   int j = 0;
  10.   .本文原创自1point3acres论坛
  11.   while (j < start.size() && start[j] != '-')
  12.     ++j;. 留学申请论坛-一亩三分地
  13.   year_start = stoi(start.substr(i, j - i));
  14.   ++j;
  15.   i = j;
  16.   while (j < start.size() && start[j] != '-'). visit 1point3acres for more.
  17.     ++j;
  18.   month_start = stoi(start.substr(i, j - i));
  19.   ++j;
  20.   i = j;
  21.   while (j < start.size() && start[j] != '-')
  22.     ++j;-google 1point3acres
  23.   day_start = stoi(start.substr(i, j - i));
  24.   i = 0;
  25.   j = 0;
  26.   while (j < end.size() && end[j] != '-')
  27.     ++j;
  28.   year_end = stoi(end.substr(i, j - i));
  29.   ++j;
  30.   i = j;. visit 1point3acres for more.
  31.   while (j < end.size() && end[j] != '-')
  32.     ++j;
  33.   month_end = stoi(end.substr(i, j - i));
  34.   ++j;
  35.   i = j;
  36.   while (j < end.size() && end[j] != '-')
  37.     ++j;. 留学申请论坛-一亩三分地
  38.   day_end = stoi(end.substr(i, j - i));
  39.   
  40.   if (year_start == year_end && month_start == month_end). 留学申请论坛-一亩三分地
  41.     return {{start, end}};

  42.   int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

  43.   int year = year_start;
  44.   int month = month_start + 1;
  45.   vector<pair<string, string> > res;
  46.   res.push_back({
  47.       start,
  48.         to_string(year_start) + "-" + to_string(month_start) + "-" +
  49.         to_string(days[month_start - 1] + (month_start == 2 && (year_start % 400 == 0 || (year_start % 100 != 0 && year_start % 4 == 0))))
  50.         });
  51.   while (year != year_end || month != month_end) {
  52.     res.push_back({
  53.         to_string(year) + "-" + to_string(month) + "-1",
  54.           to_string(year) + "-" + to_string(month) + "-" + to_string(days[month - 1] + (month == 2 && (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)))). From 1point 3acres bbs
  55.       });
  56.     year = year + month / 12;
  57.     month = month % 12 + 1;
  58.   }. Waral 博客有更多文章,
  59.   res.push_back({to_string(year_end) + "-" + to_string(month_end) + "-1", end});
  60.   return res;
  61. }
复制代码
回复

使用道具 举报

我的人缘0
linixtest 发表于 2017-8-5 05:54:44 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (1)
 
 
0% (0)  踩
我想,可以用下一个月的第一天减掉60*60*24秒来计算这个月的最后一天。下个月的第一天就是当前日期的年月加1,注意12月翻年,再加上日期1就好了吧。
回复

使用道具 举报

我的人缘0
f1371342385 发表于 2017-9-4 09:40:44 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  87% (48)
 
 
12% (7)  踩
我咋感觉你这个和design uber差不多那种的。。。查询地理信息的
回复

使用道具 举报

我的人缘0
wangchengxuan 发表于 2017-9-7 13:59:02 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  85% (6)
 
 
14% (1)  踩
试着写了一下第一题:
  1. public class DatePrinter {

  2.     static int[][] months = {
  3.         {0, 31,28,31,30,31,30,31,31,30,31,30,31},
  4.         {0, 31,29,31,30,31,30,31,31,30,31,30,31}
  5.     };
  6.     public static void main(String[] args) {
  7.         list(new int[]{2017,3,31}, new int[]{2017, 5, 29}).forEach(System.out::println);. 1point 3acres 论坛
  8.     }. 留学申请论坛-一亩三分地
  9.     private static String format = "%d/%d/%d-%d/%d/%d";
  10. -google 1point3acres
  11.     private static List<String> list(int[] start, int[] end) {
  12.         // year, month, day. 留学申请论坛-一亩三分地
  13.         int year = start[0];
  14.         int month = start[1];
  15.         int day = start[2];
  16.         List<String> res = new ArrayList<>();
  17.         res.toArray();
  18.         while (year <= end[0]) {. from: 1point3acres
  19.             while (month < (year == end[0] ? end[1] : 13)) {.留学论坛-一亩-三分地
  20.                 res.add(String.format(format, month, day, year, month, months[isLeap(year)][month], year));
  21.                 month++;
    .留学论坛-一亩-三分地
  22.                 day = 1;
  23.             }
  24.             if (year == end[0] && month == end[1] && day <= end[2]) {
  25.                 res.add(String.format(format, month, day, year, end[1], end[2], end[0]));
  26.             }
  27.             month = 1;. more info on 1point3acres
  28.             year++;. 留学申请论坛-一亩三分地
  29. . 留学申请论坛-一亩三分地
  30.         }
  31.         return res;
  32.     } 来源一亩.三分地论坛.

  33.     private static int isLeap(int year) {
  34.         return ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) ? 1 : 0;
  35.     }
  36. }
复制代码
回复

使用道具 举报

我的人缘0
linlin1990 发表于 2017-10-18 11:29:52 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  76% (35)
 
 
23% (11)  踩
把楼上的答案稍稍修改了下
        static String format = "%d-%d-%s %d-%d-%s";
       
    static int[][] months = {
            {0, 31,28,31,30,31,30,31,31,30,31,30,31},
            {0, 31,29,31,30,31,30,31,31,30,31,30,31}
        };
       
    public static List<String> list(int[] start, int[] end) {
            int year = start[0];
            int month = start[1];
            int day = start[2];.1point3acres网
            List<String> res = new ArrayList<>();
           
            while (year < end[0]) {. 牛人云集,一亩三分地
                    while (month <= 12) {
                            res.add(String.format(format, year, month, String.format("%02d", day), year, month, String.format("%02d", year % 4 == 0 ? months[0][month] : months[1][month])));
                            month++;
                            day = 1;
                    } 来源一亩.三分地论坛.
                    month = 1; 来源一亩.三分地论坛.
                    year++;-google 1point3acres
            }
            while (month <= end[1]) {
                    res.add(String.format(format, end[0], month, String.format("%02d", day), end[0], month, String.format("%02d", month == end[1] ? end[2] : (year % 4 == 0 ? months[0][month] : months[1][month])))); 来源一亩.三分地论坛.
                    month++;
            }
           
            return res;
   
回复

使用道具 举报

游客
请先登录

本版积分规则

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

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

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

custom counter

GMT+8, 2018-7-22 07:30

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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