面经 汇总

2024-09-04 15:48
文章标签 面经 汇总

本文主要是介绍面经 汇总,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里归总一下我最近小伙伴遇见的面经:

古哥的Elementum Onsite:

第一轮:coding test,给你一部mac,里面有eclipse。
在一个2d字符数组里面找是否存在一个字符串,lc原题,不过能跑8个方向。
第二轮    
找一个字符串的permutation,要求实现有无duplicate的两种,也是lc原题。
第二题比较trick,假设我们有一堆螺丝和一堆螺母,他们是一一对应的,且size各不相同,问有什么方法可以为他们一一匹配。要求是,螺母不能和螺母比较,螺丝不能和螺丝比较。
第三轮
不能用size函数,在一个sorted数组里面找是否存在某个值
第四轮
在一个rotate sorted数组里面,只给定最小值的index,问如何查找一个数是否在里面。
第五轮

在一个String里面,找出所有的palindrome.

yyh的soundhound面经:

周三的面试,

第一轮是组长的面试,第一题是问怎么用两个stack来实现一个queue,当然我用算法的可视化给他展示了一下数据进队列出队列的过程,大概给他模拟了一下整个的过程,他说不错,可以写代码了,写完了之后,他问我这种操作线程安全吗,我就把能够实现线程的方法都给他说了一遍,synchronizedreentranlockconcurrent包下的方法,他就说行了,做下一题,就是dp中最基础的题,爬楼梯,说可以爬1,2,3,4楼,问爬一百楼有多少种方法,我给他先解释了recursive的办法,然后我说其实用dp更加节省空间,不用开那么多的stack空间。第三题就是我画了图的这个题,就是一开始给出个正方形,然后每一个正方形就能被分成四个正方形,然后能够被无限的分下去,其中每个正方形能被标记上黑色B或者白色W,然后现在的任务要把两个正方形的染色进行合并,只要两个颜色中有一个是黑色,那合并之后就会变黑色,这个题目就是要设计一个数据结构,保存颜色的节点也要方便后面的合并。

当然这个大家可以琢磨琢磨,有一种特殊的结构可以解决这个问题。最后一个题目是写collection里面的comparator,看我会不会写,知不知道里面的原理。

第二轮的面试是个华裔的seniorresearch scientist,一上来就问了一下我感兴趣的方向,我把研究生时候做的事情都给他说了一趟,他说懂了,然后上来就考我数据结构什么的,其实他是个不错的面试官,知道要把一个面试者从一个较为简单的问题引入深入思考,但是他引入个方式太怪了,我一开始没有get到,后来明白他是想让我实现一个bitinteger的类,然后我就开始写,写完之后他就说我白板写得好,表扬了我一下,然后他又再问我两个biginteger比大小,我就说写compareto的方法就行了,然后他就了解了,然后就聊了很久公司发展的方向什么的。

 

第一轮 CTO面试,上来吧啦吧啦聊了他自己的工作经历然后让我介绍了一下我自己,然后第一道题就是给出一个字符串,比如说ABCD,这个字符串里都是大写的字母,然后没有重复的字符,然后就要给出这个字符串的所有的可能的子串,比如说AB的输出就是””,A,B,AB输出这四个结果,他先问我的这个字符串的长度。这样结果集有几个字符串,答出来后他说那现在写个程序,把所有的可能子串输出出来,然后就问了一道leetcode上的一道hard题。是 149. Max Points on a Line.

 

第二轮是和各种engineer聊天,聊平时的生活,聊工作上的ownership的事情。

 

第三轮是一个印度撒屌,以上来就抓着简历问,问的很细,看到我写了machine learning就问我的项目里的PCA问,问这个算法的实现原理是什么,我就大概解释了一下我自己的理解,然后就问我java怎么实现跨平台的,我就说了jvm,然后他就开始问我关于编译的问题,问泛型在编译期有没有编译到class文件中,这个首先会难了我一下,然后给我两个表,让我写sql,说一个表是歌曲的,一个表是歌手的,歌手表盒歌曲表是一对多的关系,然后他让我写找出没有歌曲的歌手的名单,我就写了个rightjoin来实现表的链接,然后他就问我怎么优化这个query,我说我要改个数据结构来做,他没有多说,他说就在query上的优化,我说我不太知道,然后他让我写binary search,查看这个数据在数列中有没有,返回index,我写了之后,他说怎么test,我就把可能的test case说给他,然后他就让我用binary search来算一个数的squareroot,然后我写完了以后,他说有点不对,我写的我就觉得我的是对的,然后讨论了一下,我当然觉得他做的是对的,只是不同的方法,然后他又问我个linux的命令,我说我不太懂这个命令,后面问了大神,大神说是awk,貌似是的。

 

第四轮是一个英国人上来给我面试的,他由于只有半个小时的时间,所以一上来也没有做自我介绍什么,就问平时用什么数据库啊,我说mysql,mongodb都用过,然后他说他对mongodb不太了解,就问我sql熟不熟,我说还不错,他貌似不太熟。然后他说希望我尽量还是用sql语法来写来回答,如果不知道可以用mongo的语法,他先问我知不知道原子操作,我说我知道啊,就把我知道原子操作给他说了一遍,当然讨论这个事情的源头就是因为当用分布式的时候,怎么保证数据的一致性,我又说了mysql里面是如何实现的,是用了乐观锁,然后每个数据其实带了一个版本号去保证一致性,然后他貌似不太懂,但觉得我说的有道理,然后他就让我设计数据库结构,表结构,就设了三张表,音乐,艺人,和播放表,他跟我说关系在音乐和艺人中都有,所以不如把一整张表来描述关系,我说ok,没问题,明显体现了我有一点设计经验缺乏,然后他就要我写各种sql,在这个playlist里面哪首歌放的最多,哪个歌手的歌最多,等等,最后他说有个bonus的题目,就是问你怎么预测美国大选,我说就从facebook和twitter上搜集数据,然后给数据结果分类,支持或不支持,然后通过数据的概率计算来看谁的支持率高,他就很可能当。

 

cxy的google面经:

 

11月6日西雅图谷歌面经
整个面试准备了大概两个半月 8月下旬recruiter跟我联系,10月2号电面(面经:http://www.1point3acres.com/bbs/thread-143272-1-1.html) 11月6号onsite.
问了两个简单的问题. more info on 1point3acres.com
1. Merge Two sorted LinkedList.
很快的写完了
2. Sort  a Linked List.
我提出用Merge Sort, 先举了个例子 过了一遍思路, 然后开始写代码。
最开始面试官给我把函数名给写出来了, 把我思路打断了, 卡了一下。
后来自己重新写了一个函数名,写完了。
写完大概还有20分钟,大叔他没有问题了,让我问他问题。
我问了一下如何才能在Google这样的公司做一个优秀的员工。
他讲了好多,没怎么听清楚,大概这么几点:
1. 要会写代码
2. 要会Design
3. 碰到难题,要知道怎么解决。 然后顺便说了下, 很多人吐槽说, 面试问这些问题有什么用,平常又不会用到。
他说其实是考察一个人解决问题的思路,是不是碰到难题就素手无策。大叔讲完了,让我介绍一下我自己,然后我大概讲了几句。。
他说结束了会整理下feedback,recruiter会再跟我联系。Onsite一共5轮:
第一轮:
1. Wildcard Match: 唯一一道Leetcode原题, 用DP解决就好
2. 一道偏设计题,要设计一个IP端口分配/查找的函数。给定IP,掩码,以及指定的端口,需要实现 两个函数:void addRule(int32 IP, int32 mask, int port) 用于添加IP -> 端口的映射int lookUp(int32 IP) 用于查找给定IP在哪个端口。只需要对子网掩码范围内的IP进行Hash 就好,查找的时候从最小的子网开始对IP进行查找。
第二轮:
从一个很大的文件(TB级)随机找出k个record, 要求每个record被选中的几率相同
解决方法: 对文件一行一行的读取,同时记下读过的count,当count小于k时,直接加入result; 当count大于k时,生成一个小于count的随机数,如果随机数小于k,就将index为k的值替换为当前值,否则直接跳过。第三轮:
Pancake Sort (http://www.geeksforgeeks.org/pancake-sorting/)
我在取最大值时 用了个max heap, 其实没有必要。 面试官后来给feedback说效率差别不大时,代码简单点更好。第四轮:
设计 Candy Crash 的初始状态,要满足三个条件:
1. 有三种糖果, 10*10的board。
2. 不能出现连续三个为同一种糖果
3. 保证玩家至少可以走一步解决方法:建一个class在存储candy,candy记录了种类,上方以及左方连续相同类型糖果的个数。然后遍历整个board,在每个坐标都随机生成一个糖果类型,如果连续相同糖果个数超过2,则重新生成,直到不同为止。生成之后,再去validate是不是有可能的走法,如果没有的话,再重新生成一个board。因为board是10*10,算了一下没有可以走动的几率很低,所以方案是可行的。讲完思路后写了代码。Follow Up: 如何测试,如何按照难度分类,如何提升游戏初始化的速度等等第五轮:
1. 上来先问了一道Open Ended 的问题,问了下 一个公司 做了很多软件,用户比较满意,但是唯一的问题是所有的代码都没有test,code base很大。问我如果是我的话,会怎么去完善这个测试系统。
我说要先加一些Functional Test, 保证核心的功能是工作的。然后每个组再去按照重要性添加unit test, 提升code coverage。最后新提交的代码一定要有测试,提交代码之前一定要先跑测试。面试官问问了测试要怎么跑,我说要在Distributed Test Farm里面跑,他问了为什么。2. 然后问了一道没听说的算法题。给定两个string,要求出最少通过几次操作可以把一个转换为另一个。两个string字符的种类和个数都相同。 只能通过一种操作,就是把字符串中的某个字符移到最前面。
比如 abcde 要变成 bcdea 就需要4次操作。 abcde -> eabcd -> deabc -> cdeab -> bcdea.
我想出来一个方法是从最后一个字符开始比较,如果不想同,就把第一个字符串的最后一个字符移到前面,如果相同,就两个字符串一起向前移动。 面试官说这样可以,让我写了代码。后来再说有更好的方法,不用改变字符串,就一直引导我把最优解写了出来。
最优解是如果遇到不想同的字符,不改变原来的字符串,而是直接向前移,直到找到相同的字符串,然后再从那个位置开始比较。
写完了以后面试官还给我论证了一下为什么这个方法是可行的。还讲了讲这道题的来历。

 

 

 

 

 

这篇关于面经 汇总的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136378

相关文章

【Kubernetes】常见面试题汇总(三)

目录 9.简述 Kubernetes 的缺点或当前的不足之处? 10.简述 Kubernetes 相关基础概念? 9.简述 Kubernetes 的缺点或当前的不足之处? Kubernetes 当前存在的缺点(不足)如下: ① 安装过程和配置相对困难复杂; ② 管理服务相对繁琐; ③ 运行和编译需要很多时间; ④ 它比其他替代品更昂贵; ⑤ 对于简单的应用程序来说,可能不

【Kubernetes】常见面试题汇总(一)

目录 1.简述 etcd 及其特点? 2.简述 etcd 适应的场景? 3.简述什么是Kubernetes? 4.简述 Kubernetes和 Docker的关系? 1.简述 etcd 及其特点? (1)etcd 是Core0s 团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目,它的目标是构建一个高可用的分布式键值(keyvalue)数据

IEEE会议投稿资料汇总http://cadcg2015.nwpu.edu.cn/index.htm

最近投了篇IEEE的顶级会议文章,一下是比较有用的一些资料,以供参考。 1.会议主页:http://cadcg2015.nwpu.edu.cn/index.htm     (The 14th International Conference on Computer-Aided Design and Computer Graphics (CAD/Graphics 2015)) 2.I

App Store最低版本要求汇总

1,自此日期起: 2024 年 4 月 29 日 自 2024 年 4 月 29 日起,上传到 App Store Connect 的 App 必须是使用 Xcode 15 为 iOS 17、iPadOS 17、Apple tvOS 17 或 watchOS 10 构建的 App。将 iOS App 提交至 App Store - Apple Developer 2,最低XCode版本 Xcod

C++常见异常汇总(三): fatal error: google/protobuf/port_def.inc

文章目录 1、fatal error : sw/redis++/redis.h2、fatal error: dwarf.h: No such file or directory3、fatal error: elfutils/libdw.h: No such file or directory4、fatal error: libunwind.h: No such file or directo

【Unity面经】实习篇:面试官常问的一百个面试题

👨‍💻个人主页:@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 专栏交流🧧🟥Unity100个实战基础✨🎁🟦 Unity100个精华一记✨🎁🟩 Unity50个demo案例教程✨🎁🟨 Unity100个精华细节BUG✨🎁🟨 Unity100个面试题✨🎁 文章

PHP面经

CORS(cross origion resource sharing)跨域资源共享,可以允许跨站请求资源。客户端需要用特定的方法去请求资源(如xmlhttprequest)同时需要带上特定的报文头信息,服务端也要支持跨域的资源请求 memcache和redis的异同点 memcache可以利用多线程,吞吐量高,适合大访问量memcache只支持简单的key/value结构memcache无法

[JAVA基础知识汇总-1] 创建线程的几种方式

文章目录 1. 继承Thread类2. 实现Runnable接口3. 实现Callable接口4. 线程池 可以认为有四种方式,也可以认为有一种,因为都跟Runnable接口有关 1. 继承Thread类 代码 public class Thread1ExtendsThread extends Thread {// public Thread1(String n

RK3288 资源汇总

用了一段时间的RK3288做开发,现汇总一下网上的学习资源: 1、九鼎创展: 源代码仓库:https://gitlab.com/9tripod/x3288_linux_new 百度云文档资料: 链接:http://pan.baidu.com/s/1qYcsAaK    密码:wmvi 更多可查看九鼎创展社区:http://bbs.9tripod.com/forum.php?mod=fo

Android开发中遇到的各类问题汇总

Q1: Error:The number of method references in a .dex file cannot exceed 64K.Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html 应用中的Dex 文件方法数超过了最大值65536的上限