百度面试两板斧:手写算法问基础

阅读本文大概需要 4 分钟。

作者:黄小斜

17年7月份,我参加了百度的实习生面试,随后在百度开始了半年的实习生活,18年7月份,我参加了百度的校招提前批面试,由于可以同时参加百度多个部门的提前批面试,结果我前前后后面试了10多次,也算是一段比较奇葩的经历了。

当然,实习生面试是这里面最简单的一次了,三轮面试,前两轮都是在问基础,问的也不深入,第三轮面试则直接谈人生谈理想。其实百度的日常实习生面试难度确实比校招要来的容易,因为百度一年四季都在招实习生,反观阿里和腾讯,只有在春招期间招收实习生。

既然上面的面试难度不太具有代表性,那么我还是来说说秋招的百度面试经历吧。

大家都知道,阿里内部用Java居多,腾讯内部用C++居多,而百度内部的语言则是五花八门,Java、C++、Python、PHP,都有一定数量的人在用,所以百度的面试题也会比较杂,什么都有可能考,但亦不会考的特别难。

手写算法是百度秋招必考的一个环节,我那时候都是电话面试,所以直接是用在线写代码的网站来做题的(面试官可以实时看到你的代码情况)手写算法一般是压轴环节,也就是面试官问完基础题,就会开始让你写算法题。

题目的难度也不尽相同,有的面试官让我写过二叉树相关的简单题,也有面试官让我写DFS、BFS的题目,当然,多数题目还是剑指offer上的题目,以及基础题:字符串问题、快排、二分查找、二分查找变式等。

值得一提的是,面试官会允许你在本地IDE进行调试,这样一来可以节省你的时间。

在开始写代码前,面试官一般会先问你的思路,假如他没有问,那你也要主动告诉他,要知道,考察算法题的时候,和面试官的有效沟通也是一个很重要的考察点,否则你可能会漏掉关键信息,以至于无法完成后续答题。

当然,打铁还需自身硬,最关键的一点是,你需要花大量时间刷题,积累经验,保持做题手感,剑指offer上的题目基本要掌握,LeetCode的经典题型必须重视,刷题是一件你需要不断坚持的事情,就和考研前需要不断做数学题一样,都是一个道理。

讲了这么多关于手写算法方面的内容,可能你已经萌生退意了,那我们还是把话题移回到简单粗暴的基础问题吧,计算机网络、操作系统、数据结构这三门课程,百度一样喜欢考,不过难度适中,一般只会考比较基础的问题,比如TCP/IP三次握手、四次挥手,线程和进程的区别,内存管理方式等等。

最后要说的是,百度最喜欢考察的一类题目,叫做海量数据问题,虽然现在越来越多公司都喜欢考这个,但是百度可以说是这类题目的创始人。

所谓海量数据处理,无非就是基于海量数据上的存储、处理、操作。何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。

关于百度面试的内容,我就总结这么多了,当然,大部分是针对校招同学的面试题,至于社招的朋友,则更多地会和部门需求匹配,考察的重点也不再是上述这些基础知识和算法题了。

如果仍有疑问,也可以留言参与互动噢。

微信公众号

个人公众号:程序员黄小斜

?
黄小斜是 985 硕士,阿里巴巴Java工程师,在自学编程、技术求职、Java学习等方面有丰富经验和独到见解,希望帮助到更多想要从事互联网行业的程序员们。
?
作者专注于 JAVA 后端技术栈,热衷于分享程序员干货、学习经验、求职心得,以及自学编程和Java技术栈的相关干货。
?
黄小斜是一个斜杠青年,坚持学习和写作,相信终身学习的力量,希望和更多的程序员交朋友,一起进步和成长!

原创电子书:
关注微信公众号【程序员黄小斜】后回复【原创电子书】即可领取我原创的电子书《菜鸟程序员修炼手册:从技术小白到阿里巴巴Java工程师》这份电子书总结了我2年的Java学习之路,包括学习方法、技术总结、求职经验和面试技巧等内容,已经帮助很多的程序员拿到了心仪的offer!

技术公众号:程序员江湖

英雄不问出处,编程不看出身。这里是自学编程爱好者的聚集地,也是程序员IT学习资源的藏经阁。点击关注,一起成为更优秀的程序员!

程序员3T技术学习资源: 一些程序员学习技术的资源大礼包,关注公众号【程序员江湖】后,后台回复关键字 “资料” 即可免费无套路获取,包括Java、python、C++、大数据、机器学习、前端、移动端等方向的技术资料。

关注公众号【程序员江湖】后回复「Java」、「Python」、「C++」、「大数据」、「算法」、「AI」、「Android」、「前端」、「iOS」、「BAT」、「校招」、「笔试」、「面试」、「计算机基础」、「LeetCode」 等关键字可以获取对应的免费程序员学习资料。

原文地址:https://www.cnblogs.com/AntCoder/p/11815433.html

时间: 2024-10-06 13:31:10

百度面试两板斧:手写算法问基础的相关文章

Java面试必备:手写单例模式

面试官:请手写下几种常见的单例模式 我:好的(面带微笑),心里暗喜(送分题). 没成想提笔便写出了如此豪放的代码,不堪回首,请原谅我的不羁! 此篇整理了几种常见的单例模式代码示例,再有面试官让手撕单例模式,便能心中有码,下笔有神. 为什么要有单例模式 实际编程应用场景中,有一些对象其实我们只需要一个,比如线程池对象.缓存.系统全局配置对象等.这样可以就保证一个在全局使用的类不被频繁地创建与销毁,节省系统资源. 实现单例模式的几个要点 首先要确保全局只有一个类的实例. 要保证这一点,至少类的构造器

关于java写一个单例类(面试手写题)

package com.shundong.javacore; /** * java写一个简单的单例类 * @author shundong * */ class Singleton { //使用一个类变量来缓存曾经创建的实例 private static Singleton instance; //对构造进行隐藏(private) private Singleton(){} /** * 提供一个静态方法 * 该方法加入了自定义控制 保证只产生一个Singleton对象 * @return 返回S

React深入 - 手写redux api

简介: 手写实现redux基础api createStore( )和store相关方法 api回顾: createStore(reducer, [preloadedState], enhancer) 创建一个 Redux store 来以存放应用中所有的 state reducer (Function): 接收两个参数,当前的 state 树/要处理的 action,返回新的 state 树 preloadedState: 初始时的 state enhancer (Function): stor

c++后台开发面试常见知识点总结(六)算法手写

链表倒转  leetcode-206 连续子数组最大和问题(和最大的连续子序列的和)   leetcode-53 输出字符串中最长的回文子串长度?  leetcode-5 一个字符串,求最长无重复子串的长度?  leetcode-3 最长递增子序列  leetcode-300 反转一个字符串......(手写代码) leetcode-344 数组中存在一个大于n/2次的数,如何以最优方法查找它?LeetCode 169 \ 229 一个字符串中{}  [ ]  ()匹配问题     LeetCo

去百度面试,想知道面试官问哪些问题,看这篇文章

https://mp.weixin.qq.com/s?__biz=MzI0NjM3NjI1NQ==&mid=2247487861&idx=1&sn=34316976cdb0aa2e4df3aa6f1f5cc31d&chksm=e9416325de36ea33200d9944fff37381de11c8d4dc8aeb0cc4b83c6201e56b8ee2bc8c2798cc&mpshare=1&scene=1&srcid=1102ElP5k7MBT

面试官,求求你不要问我这么简单但又刁难的算法题了

有时候面试官往往会问我们一些简单,但又刁难的问题,主要是看看你对问题的处理思路.如果你没接触过这些问题,可能一时之间还真不知道怎么处理才比较好,这种题更重要的是一种思维的散发吧,今天就来分享几道题面试中遇到的算法题(当然,不是我自己遇到过,是别人遇到过,我挑选出来的) 案例1 题目描述:求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 我去,求和居然不让用乘除法,也不准我们用循环,如果单独这两个限制的话

KNN分类算法实现手写数字识别

需求: 利用一个手写数字"先验数据"集,使用knn算法来实现对手写数字的自动识别: 先验数据(训练数据)集: ?数据维度比较大,样本数比较多. ? 数据集包括数字0-9的手写体. ?每个数字大约有200个样本. ?每个样本保持在一个txt文件中. ?手写体图像本身的大小是32x32的二值图,转换到txt文件保存后,内容也是32x32个数字,0或者1,如下: 数据集压缩包解压后有两个目录:(将这两个目录文件夹拷贝的项目路径下E:/KNNCase/digits/) ?目录trainingD

C#中调用Matlab人工神经网络算法实现手写数字识别

手写数字识别实现 设计技术参数:通过由数字构成的图像,自动实现几个不同数字的识别,设计识别方法,有较高的识别率 关键字:二值化  投影  矩阵  目标定位  Matlab 手写数字图像识别简介: 手写阿拉伯数字识别是图像内容识别中较为简单的一个应用领域,原因有被识别的模式数较少(只有0到9,10个阿拉伯数字).阿拉伯数字笔画少并且简单等.手写阿拉伯数字的识别采用的方法相对于人脸识别.汉字识别等应用领域来说可以采用更为灵活的方法,例如基于规则的方法.基于有限状态自动机的方法.基于统计的方法和基于神

K-近邻算法构造手写识别系统

为了简单起见,这里构造的系统只能识别数字0到9,需要识别的数字已经使用图形处理软件,处理成具有相同的色彩和大小:宽高是32像素的黑白图像.尽管采用文本格式存储图像不能有效地利用内存空间,但是为了方便理解,我们还是将图像转换为文本格式. ---1.收集数据:提供文本文件 该数据集合修改自“手写数字数据集的光学识别”-一文中的数据集合,该文登载于2010年10月3日的UCI机器学习资料库中http://archive.ics.uci.edu/ml.        ---2.准备数据:将图像转换为测试