Adobe 面试体验 |第 28 套(适用于 MTS-2)
- 写轮回:
3小时的笔试。
先技术,后能力。我能记住的几个技术问题。
int* a = (int*)60; int* b = (int*)40; printf("%d", a-b); Print the output. (Ans: 5)
- 给定一个字符串形式的布尔数。 WAP 以相同的形式(字符串)输出数字的 2 的补码。
- 将前缀表达式转换为后缀。
- 给出了一些汇编程序,需要告诉程序到底在做什么。
- 一些基本的哈希相关问题。
能力倾向问题是标准的,并且每次都会重复。
可以在网上查到。 - 第一轮:F2F
- 使用右下角方法实现 n 叉树。
遍历水平顺序和顺序。
要求对所有内容进行编码。 - 您将使用什么数据结构来存储复合链表?
复合意味着各个节点中的数据值可能因原始数据类型而异。我从 void* 和一个枚举条目开始,以指定在检索期间提供帮助的类型。
然后转移到使用联合。他看起来对此很满意。 - 实现 malloc 和 free。
- C 程序的内存布局。
- 从技术角度来看,我喜欢 Adobe Photoshop 的哪些方面?
您将如何在运行时加载和显示 3 GB 的数据文件。
- 使用右下角方法实现 n 叉树。
- 第二轮:F2F
- 用 C 语言设计和实现垃圾收集器。
这里讨论了很多方面。
什么时候触发?
谁是负责的人?
要释放哪个内存? - 给定一个整数,你将如何确定它是否是回文。
他对基于堆栈的方法印象不深。
需要较小的空间复杂度。所以给出了这样的解决方案:
rem = num1%10;
数字 1 = 数字 1/10;
num2 = num2*10 + rem;如果创建的新数等于原始数,则它是回文数。
他希望我进一步优化它。所以也开始比较 num1 和 num2 ,如果数字有偶数,它会提前返回。
此外,如果该数字是 10 的倍数,则可以直截了当地说它不是回文。 - 给定一个整数,找出下一个更高的回文数。
- 用 C 语言设计和实现垃圾收集器。
- 第三轮:F2F
- 检查二叉树是否遵循以下属性的代码。
每个节点的数据=左子树之和+右子树之和。 - 设计一个模型来实现谷歌驱动器的同步机制。
(仅处理客户端)。
同一个文件可以被不同的客户端访问和修改。
照顾电源故障,也没有互联网连接场景。 - 给定一个无限的布尔数字流,需要在运行时判断到目前为止收到的数字是否是 3 的倍数。
例如,收到的第一个数字是 1,所以数字是 1 -> 不是 3 的倍数。
收到的第二个数字是 0,所以这个数字是 2 -> 不是 3 的倍数。约束是您只能使用 2 位缓冲区来存储。
答:总是存储余数以知道它是否是 3 的倍数。
在上面的例子中,
雷姆 = 1%3 = 1
当 0 到来时,新的剩余 = 2*1 + 0 = 2 %3 = 2。等等。
- 检查二叉树是否遵循以下属性的代码。
- 第四轮:
- 给定排序但旋转数组的代码,找到给定数字的上限。
- 项目讨论。
易变的关键字。
讨论extern和static的使用。 - 大端和小端架构。
如何识别是大端还是小端。
如果使用 big-endian 架构将某些内容写入磁盘,然后使用 little-endian 架构读取,会发生什么情况?
- 第五轮:
这里问了2个问题,我真的不知道答案。
我只是尝试了所有可能的方式并分析了利弊。- 给定一张矩形纸和一组非常不规则的形状。
我要从纸上剪下这些形状,用这样的方式
所有的部分都“很好地混合在一起”,纸张的浪费是最小的。
当我说不规则时,它也可以在中间有一个洞。 - 现在说,在触摸屏显示器上,你有那些不规则的碎片。
你触摸一个点并滑动它,相应的部分应该朝那个方向移动。这个游戏是交互式的,需要很好的时间复杂度。 - 给定一个相当大的数字,需要判断该数字是否属于斐波那契数列。
您不能生成斐波那契数列中的所有数字。那时我不知道检查这一点的直接公式。
于是尝试了矩阵乘法的方法来计算第n个斐波那契数。
我计算了第一个数字,第二个数字,第四个等等,直到数字超过给定的数字。
然后使用二进制搜索来追踪答案。 - 被问到是否可以提高硬件性能。
我说的是通过在四个核心上并行计算矩阵的所有四成员(如果有的话)。他看起来很满意。
- 给定一张矩形纸和一组非常不规则的形状。
要求解释 MVC 设计模式。
感谢 GeeksforGeeks 提供的很棒的资源!
干杯!
Adobe的所有练习题!