数据里面的poi指的什么_热腾腾的百度字节数据岗实习面经(文末附良心建议)...

本文作者分享了在百度和字节跳动实习的面试经历,涉及数据挖掘、机器学习、算法题以及面试技巧。在百度实习中,主要负责POI数据处理,面试涉及LR、朴素贝叶斯、随机森林等,以及多叉树的层序遍历。在字节跳动的大数据研发实习中,面试涵盖数据库、二叉树、SQL等内容。作者强调数据的价值在于有效利用,并提供了面试准备和简历投递的建议。
摘要由CSDN通过智能技术生成

本文整理了百度和字节跳动的实习面经,并在文末总结了最近准备实习过程中的一些思考和收获

百度数据挖掘实习面经

工作职责:

  1. 负责百度地图核心产品功能和架构开发
  2. 负责百度地图POI海量数据处理和整合

百度一面

问了机器学习部分,知道我深度学习不会就也没问

  1. LR过拟合了怎么办
  2. 正则化了解吗?
  3. 讲讲朴素贝叶斯吧
  4. 随机森林和GBGT

算法题:

top k问题的思路 不用写代码

    1. 最大堆
    2. 排序

当数据量很大的时候,比如有1000个1GB的数值文件,求他们的Top K

分布式思想分而治之,100台服务器 得到100个最大堆,然后返回每一个堆的前K次

多叉树的层序遍历:

class TreeNode(object):
    def __init__(self):
        value = 0
        children = list()
        
def printer(root):
    queue = list()
    queue.append(root)
    while(!queue.isEmpty()):
        if queue[0].chilren:
            for x in queue[0].children:
                queue.append(x)
        print(queue.pop(0))
        
--------Test----------
queue : 2 3 4 5 6
output :  1 2 3 4 5 6 7 8 9
     1
    /    
  2      3
/     /
4 5 6  7 8 9 

一面小插曲:

百度面试官上来就说:“我看你是在刷剑指offer对吧?”

我心里(???)嘴上:“嗯嗯,是的,请问您是看了我的专栏文章吗?”

面试官:“没,我点开你GitHub看了看,发现一个仓库名字叫 sword-offer-solution,刷过也没关系,我们今天不考剑指offer的题

“刷过也没关系,我们今天不考剑指offer的题”“刷过也没关系,我们今天不考剑指offer的题”“刷过也没关系,我们今天不考剑指offer的题”

我(???)嘴上:“好的好的,没问题”

面试官:“我看你做过二叉树的层序遍历,那我们今天做一道多叉树的层序遍历吧,你做过吗,做过直接和我说就行。”真的非常良心,感恩!

后来面试完后还和一面面试官交流了他们对于刷题的看法,简而言之就是推荐我把leetcode刷完,哈哈哈,不愧是前辈!

百度二面

自我介绍,问项目,主要集中在机器学习

算法题:

1 实现一个栈

# 1. 实现一个Stack 基础库
# 2. 检查异常边界
#     2.2 为空的时候不能pop()和top()
#     2.1 最大长度限制 256
class my_stack():
    
    myStack = []
​
    def my_push(val):
        if len(myStack) < 257:
            myStack.append(val)
        else:
            print("The stack is full")
​
    def my_pop():
        if len(myStack) > 0:
            return myStack.pop()
        else:
            print("The stack is empty")
            return null
​
    def my_top():
        if len(myStack) > 0:
            return myStack[-1]
        else:
            print("The stack is empty")
            return null

2 给定一个数组,将其中的基数和偶数排列成两堆,不能使用额外空间

def evenOddRank(nums):
    
    # 奇数偶数排成两堆
    
    #排好序了的奇数偶数的index位置
    odd_index,even_index = 0,len(nums)-1
    for i in range(len(nums)):
        if nums[i] // 2 == 1: #odd
            odd_index += 1
    for i in range(len(nums)-1,0,-1):
        if nums[i] // 2 == 0 : 
            even_index -= 1
    for i in range(odd_index,len(nums)):
        if odd_index == even_index:
            return nums
        if nums[i] // 2 == 1 and i > odd_index: # odd
            # swap
            nums[i],nums[odd_index] = nums[odd_index],nums[i]
            odd_index += 1
        elif nums[i] // 2 == 1 and i <= odd_index:
            odd_index += 1
              
        if nums[i] // 2 == 0 and i < even_index: # even
            # swap
            nums[i],nums[even_index] = nums[even_index],nums[i]
            even_index -= 1
        elif nums[i] // 2 == 0 and i >= even_index: # even
            even_index -= 1
​
-----------------------------------            
test Case:
init:
nums[1,2,3,4] --->odd = 1 even = 2
i=1:
nums[1,3,2,4] ---> odd =2. even =2

面试官问完了所以问题,问我“有没有什么问题想问我的?”

“刚和一面面试官也聊了一些关于部门所在做的事情,主要方向是POI(point of interest)更新和相关一些多维数据挖掘对吗?我想请问一下二面面试官您能不能给我再细致的讲讲你们目前在做的具体项目呢?是一个什么样的场景,我们系统的输入输出分别是什么?”

然后二面面试官向我介绍了很多他们正在做的事情。POI数据挖掘和更新就是一个很大的点,然后围绕这个点会有很多种优化和改进的方案,例如基于AI合成语音自动向商家打电话询问“请问您XXX这家店还在正常营业吗?”“请问您隔壁YYY店还在正常营业吗?”然后将用户的语音回答识别成文本内容后记录下来。这一块都可以单独做一个简单的二分类模型 --- 正常营业 or 已经关闭

除了POI信息更新外,他们还做POI和外部优质内容的映射对接,例如故宫这个地点,我们可以从马蜂窝,美团,小红书等外部优质的内容平台上引入一些富文本内容,更好的帮助用户。

面试总结:

地图场景是一个日常生活的闭环,基本上我们所能够想到的衣食住行都能够通过小小一个地图应用得到满足,那么如何做好一个地图应用呢?POI的及时更新,相关优质内容的推荐一定是这个场景下非常重要的一环。

字节跳动-大数据研发实习面经

字节一面

自我介绍

操作系统,进程线程,进程同步

计算机网络TCP/UDP

数据库,引擎,索引,B+树的结构和底层实现

编程题:

第一题手撕代码:

给定一个整型数组,其中元素代表三角形的一条边的长度,问从中取出的最大三角形边长为多少? 要求时间复杂度 O(n*Log n)

排序后,由大到小找3条边,满足 两边之和小于第三边 则符合要求,返回他们的和作为结果

第二题讲思路,分析时间复杂度:

给定一棵二叉树,求它的最长连通路径的长度。最开始我有点理解偏了,于是向面试官提出疑惑,面试官当场在白板上画了一棵树,告诉我他所期望的输入输出。(所以说沟通能力也是面试过程中考察的一项核心能力。)一看到图,我马上就想到了思路,连通路径长度 = 左子树深度 + 右子树深度 + 1(当前节点)

思路不难,但是具体实现中的时间复杂度分析我并没有做的太好,需要对所有节点做递归计算左右子树深度吗?如果树结构可以自己定义,我们可以增加哪些信息维度来帮助我们更快的得到答案呢?

字节二面

主要考察了数据库的知识,写SQL, 两张表 left Join 的结果,索引结构和原理,B+树,组合索引(ABC)

一道算法题,大概难度等价于Leetcode中等题。

面试完后问了一下二面面试官具体的业务场景:

ETL 建设,BI系统,图形化的支持方式,从数据采集到最终的展示都是可视化

所以晚上更有针对性的准备了一下ETL相关的知识,非常感谢阿里学长的帮助。

这部分内容也可以单独开一篇文章写了,这里放上幕布的文档链接:https://mubu.com/doc/2Tg86nco7U 密码:1120

数据的价值是什么

就像文字的价值在于被理解一样,数据的价值在于被有效利用。 至于怎么利用,就是从采集到清洗整理再到载入数据仓库,最后特征工程,进行合适的建模和算法处理。基于数据的应用太多了,内容平台包括电商,短视频,地图生活服务中最常用的就是推荐系统。

经验总结 (写于2019-11-14拿到正式offer后)

0 简历修改

这部分最关键的注意事项是 简历一定要对应岗位工作描述(JD),尽可能只放相关项目,例如我会有算法和后端研发两份几乎完全不同的简历,每次投递的时候也会根据不同的JD进行一些调整。

因为我们的简历大部分时候会先到公司的HR手中,他们为面试官进行第一步初筛,可能HR们并不能完全理解我们所做的项目,他们会对应JD看看我们是否满足上面的各项要求,如果大致满足才会给技术组的面试官推。

1 简历投递

充分准备再去投递是不可能的,我之前一直觉得字节太难了,为什么要去送人头,叫对方指着自己脸打?后来在朋友的内推下才有机会面了这个岗,可以说是机缘+运气+敢创敢拼不怕失败才带来的这个offer吧

2 面试前

我们不可能重复准备,但是我们可以尽可能把所投递的岗位描述摸清楚。 最好的办法是什么?找关系!没有听错,就是动用你一切可以动用的资源去联系行业内真正在从事这个行业的前辈,虚心请教他们的日常工作具体是做什么,对于刚入行的小朋友有什么建议和学习资料推荐,如果还有2天就要面试了,最需要深刻理解和掌握哪些知识? 当然不是每个人都能有这么好的校友或者社群资源,那该怎么办?--- 网上搜这个岗位相关的面经,我一般会在牛客网上搜索,然后单独整理到一个文档中,将问题中涉及到的不清楚的知识点再尽可能的做相关准备。

3 面试中

借用腾讯好友粽神的原话 “老大招人的标准 = 聪明度+解决问题的能力+沟通能力”

  1. 我最近面试比较顺利就是因为舍得和面试官多交流(3天10场面试后,我的嗓子已经发炎了)把自己基于学校里课程中玩具项目的改进和思考说了很多给面试官听,也认真和他们探讨我思考中的很多不足,当被问到不会的地方也不勉强,承认自己还没学过但是如果有一些相似的知识点或者概念会尝试着多说一些,真的不会的地方会请求面试官重复一遍问题,然后虚心接受把它们记在小本子上。
  2. 手撕代码环节 思路和代码同样重要,你思路好但是写的代码bug百出肯定是不行的。 你没有思路或者说没有最优解并不可怕,如果你上来道道题都秒给出最优解,面试官反而会觉得是不是这些题你都刷过了?因为比起找一个“把题都刷通了的人”,面试官更愿意找到“看起来就很聪明的人”。刷题是你的努力,是提高下限,聪明才是一个人的底层竞争力,是一个人的发展潜力,是能力上限。 上限往往来源于天赋,我们普通人能做的就是尽可能提高下限,让自己给他人的感觉变成“这个小伙子看起来就很聪明”,这需要我们更加努力,才会显得毫不费力。

4 面试后

  1. 及时总结遇到的问题,和自己答的比较好的题。有时候人的潜能都是在面试或者类似高压环境下被激发出来的。例如,你让我平时刷题的时候,去想头条遇到的每一道题,我估计都需要至少10-20分钟时间,但是在面试场合,我几乎都是1-2分钟就可以把一个相对合理的解法给出来。
  2. 面试后,虚心且真诚的和面试官表达你在这场面试后的成长和收获,同时也列出一些这场面试中你的不足并且表示你之后一定会好好提高这一部分知识或能力,再次表示感谢。

5 接受/拒绝offer

接受offer一定要尽可能问清楚你所关心的问题,例如:

  1. 部门的核心业务是什么
  2. 实习生进去之后主要会负责什么
  3. 有相关的培养计划吗?是否有Mentor指导?
  4. 是否有转正机会
  5. 公司办公地点,实习薪资,住房补贴

拒绝一定要迅速且果断,并且第一时间和HR/面试官真诚的表达抱歉和感谢,时间很长,世界很大,广结善缘,日后总有相见的时候。

福利时间

如果有小伙伴对这几家公司感兴趣(尤其是字节!!!还没入职就已经开始为公司招兵买马可是操碎了心,逃~),可以私信我内推。私信格式要求:意向公司+意向岗位+100-200字自我介绍+岗位描述链接。收到后我觉得符合基本要求会发我的邮箱地址给你接受简历,然后进一步查看并进行相关推荐。这个过程中有其他相关的问题,也很欢迎多多讨论交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值