互联网大厂面试--美团面试题
跳槽是每个职场人士发展的一部分,而进入知名互联网大厂更是众多人的梦想。在实际跳槽过程中,面试是一个至关重要的环节。了解和准备面试题是成功的关键之一。最近,一位老学员成功跳槽至美团,并总结了自己在面试中遇到的笔试题目。让我们一起来看看这些题目,了解美团的笔试题到底难不难。
第一题
题目:编写一个Java函数,实现批量获取数据的功能(BService.get(List<Integer> ids))。具体要求如下:
1)提供一个函数BService.get(List<Integer> ids),支持最多传入100个id;
2)在BService.get((List<Integer> ids)函数内部,需要将传入的id列表分批(每批10个id)进行调用AService.get(List<Integer> ids)函数获取数据;
3)BService.get((List<Integer> ids)函数需要返回所有批次获取的数据的合并结果,即一个包含所有数据的List<Integer>;
第二题
编写一个Java函数,通过调用AService.get()、BService.get()、CService.get()三个接口,获取三个整数,然后将这三个整数累加,最终返回累加的值。要求:
1.调用三个接口的操作需要并行执行,以提高效率;
2.累加操作需要在获取三个整数的操作完成后进行,因此需要保证三个整数均已获取后才能进行累加操作;
3.考虑多线程安全问题。
第三题
将下面这个未完成的Java工具类补充完成,实现懒加载的功能,该类需要实现Iterable接口,能够遍历所有数据。具体要求如下:
工具类提供了一个ValueLoader接口,用于获取数据,其中ValueLoader的接口定义为:public interface ValueLoader<T> { T load(long offset, int limit); }。使用该工具类的地方,需要提供ValueLoader的实现类。
工具类需要支持懒加载,即遍历时按需获取数据,而非一次性获取所有数据到内存之后,再进行遍历;
工具类需要实现Iterable接口,支持使用foreach语句遍历所有数据;
当ValueLoader.load()方法返回null时,认为已经遍历完成;
待补充完整的工具类:
实际场景使用该类的范例
第四题
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照顺序的方式存储的,并且每个节点只能存储一位数字。
请你将两个数相减,并以相同形式返回一个表示相减结果的链表。
你可以假设
1)除了数字 0 之外,这两个数都不会以 0 开头。
2)给定的第一数字一定比第二个数字大。
举例:
输入:l1 = [9,8,7], l2 = [5,1,2]
输出:[4,7,5]
解释:987-512 = 475.
|