📌  相关文章
📜  Mentor Graphics 面试经历|套装 1(1 年以上经验)

📅  最后修改于: 2021-09-23 05:33:31             🧑  作者: Mango

面试 1(45 分钟)
Q1)编写一个函数,每次调用时返回不同的字符串。
回答
只需以字符串的形式返回时间。
那么问题就变了——如果两台不同的计算机同时调用同一个函数怎么办?
回答
将计算机 ID(或 IP)附加到字符串.
那么问题又变了——如果同一台计算机同时调用同一个函数呢?
回答
将处理器 ID 附加到字符串

Q2) 给定一个整数,计算二进制表示位变化的次数。
例如,在 43 i,e, 0000101001 中,我们有 5 次从 0 到 1 或 1 到 0 的变化(从右数第 1、3、4、5 和 6 位)。
回答
只需从最右边开始并继续向左移动并查看切换次数
O(log n) 时间。
然后他修改了问题——通过使用额外的空间来减少比较的次数。
回答
将 0 到 255 之间的所有数字的切换次数存储在一个数组中,其中数组 [i] 表示整数 i 中的切换次数。例如,数组[43] 的值为 5
现在将 32 位数字分成四个 8 位数字。计算它们每个中的切换次数(通过哈希映射),并只检查这 8 位数字中的每一个的最后一位和第一位,如果它们与下一位不同,则将计数加 1。

然后午休

采访二

Q1) 给定一个整数数组,找出该数组中连续自然数的最长序列,使得小于该序列中每个数的所有数都出现在该数组之前。

例如,如果数组是
4,7,5,9,11,6,8,14,13,12,1
答案是 3 – 4,5,6(虽然最长的连续列表是 11-14,13 出现在 14 之后)

回答
从左边开始并将它们存储在一个哈希映射中,其中键是数字本身,值是以它结尾的最长连续列表。
要设置数字的值,请找到当前键的值 -1 。如果存在,则将值加一并将其存储在当前键的值中,否则将其设置为 1。

in the above list 
key value
4    1
7    1
5    2 (because 4's value is 1)
9    1
11   1
6    3(because 5's value is 2)
8    2
14   1
13   1
12   1
1    1 
keep the maximum count.

Q2) 设计一个数据结构来计算一个字符串出现的次数。
只需使用一个计数代表计数的trie

struct trie{
   int count;
    struct trie* children[26];
};

Q3) 关于后缀树的一些问题。我不记得了。

Q4)设计一个系统,它在触发器中接收大量条目(以百万计)(中间有一些停止)并执行以下函数- 1)计算第 k 次触发器的值
2) 第 k 个上升沿。

然后我们为此使用了hash map,但是内存限制是个问题,所以他说停止的次数很少,所以答案是使用一个以停止发生的时间为key的BST。
(我知道这有点难以理解,但问题很简单)

采访三
Q1) 设计一棵 B+ 树并对其进行编码。

祝你面试好运,继续学习 GeeksForGeeks,如果你很了解这个网站,那么你不需要做太多事情就可以在任何公司被选中。