职位:高级安卓开发人员
能力将是 Tech Fit(问题解决、数据结构和算法)
第一回合:
电话回合:
1. 克隆一个带有 next 和随机指针的链表
https://www.geeksforgeeks.org/a-linked-list-with-next-and-arbit-pointer/
2. 你必须设计一个有列表的数据结构。你需要做3个操作
1. 插入到位。
2. 从索引中获取值。
3.更新所有索引
时间复杂度为 O(1)。
提示:我为每个索引使用了计数,如果用户调用更新所有索引,我有额外的变量来存储值。
在 count 的帮助下,您可以确定是否必须从索引或额外的更新变量中选择值。
班加罗尔的现场回合
第二轮:
1、项目相关问题。
2.我们有n张卡片,每张卡片的编号从1到n。
所有卡片随机洗牌。
我们只允许操作 MoveCard(n) 将值为 n 的卡片移动到堆的顶部。
我们需要以最少的 MoveCard 操作对一堆卡片进行排序。
我能想到的最简单的方法是从 MoveCard(n)、MoveCard(n-1)、MoveCard(n-2)…开始。移动卡(1)。
这种方法将解决 n MoveCard 操作中的问题。
https://stackoverflow.com/questions/21852309/sort-a-deck-of-cards-with-minimum-number-of-moves
第三轮:
1. 是树公共祖先问题和链表Y节点问题的变异。我记不太清楚了
但如果你知道这两个,你将能够回答。
2.最长递增子序列
https://www.geeksforgeeks.org/dynamic-programming-set-3-longest-increasing-subsequence/
第四轮:
1. 100人手拿枪站成一圈。 1杀2,3杀4,5杀6等等
直到我们只剩下一个人。谁将是最后一个活着的人。编写代码以有效地实现这一点。
Java循环依赖题。
3. 一些基本问题
4. 编写一个具有两个线程(A 和 B)的程序,其中 A 打印 1 ,B 打印 2 ,依此类推,直到达到 50。
谢谢 GFG