📜  Adobe 面试体验 |第 28 套(适用于 MTS-2)

📅  最后修改于: 2022-05-13 01:58:12.556000             🧑  作者: Mango

Adobe 面试体验 |第 28 套(适用于 MTS-2)

  • 写轮回:
    3小时的笔试。
    先技术,后能力。

    我能记住的几个技术问题。

    1. int* a = (int*)60;
       int* b = (int*)40;
       printf("%d", a-b);
       Print the output. (Ans: 5) 
    2. 给定一个字符串形式的布尔数。 WAP 以相同的形式(字符串)输出数字的 2 的补码。
    3. 将前缀表达式转换为后缀。
    4. 给出了一些汇编程序,需要告诉程序到底在做什么。
    5. 一些基本的哈希相关问题。

    能力倾向问题是标准的,并且每次都会重复。
    可以在网上查到。

  • 第一轮:F2F
    1. 使用右下角方法实现 n 叉树。
      遍历水平顺序和顺序。
      要求对所有内容进行编码。
    2. 您将使用什么数据结构来存储复合链表?
      复合意味着各个节点中的数据值可能因原始数据类型而异。

      我从 void* 和一个枚举条目开始,以指定在检索期间提供帮助的类型。
      然后转移到使用联合。他看起来对此很满意。

    3. 实现 malloc 和 free。
    4. C 程序的内存布局。
    5. 从技术角度来看,我喜欢 Adobe Photoshop 的哪些方面?
      您将如何在运行时加载和显示 3 GB 的数据文件。
  • 第二轮:F2F
    1. 用 C 语言设计和实现垃圾收集器。
      这里讨论了很多方面。
      什么时候触发?
      谁是负责的人?
      要释放哪个内存?
    2. 给定一个整数,你将如何确定它是否是回文。
      他对基于堆栈的方法印象不深。
      需要较小的空间复杂度。

      所以给出了这样的解决方案:
      rem = num1%10;
      数字 1 = 数字 1/10;
      num2 = num2*10 + rem;

      如果创建的新数等于原始数,则它是回文数。
      他希望我进一步优化它。

      所以也开始比较 num1 和 num2 ,如果数字有偶数,它会提前返回。
      此外,如果该数字是 10 的倍数,则可以直截了当地说它不是回文。

    3. 给定一个整数,找出下一个更高的回文数。
  • 第三轮:F2F
    1. 检查二叉树是否遵循以下属性的代码。
      每个节点的数据=左子树之和+右子树之和。
    2. 设计一个模型来实现谷歌驱动器的同步机制。
      (仅处理客户端)。
      同一个文件可以被不同的客户端访问和修改。
      照顾电源故障,也没有互联网连接场景。
    3. 给定一个无限的布尔数字流,需要在运行时判断到目前为止收到的数字是否是 3 的倍数。

      例如,收到的第一个数字是 1,所以数字是 1 -> 不是 3 的倍数。
      收到的第二个数字是 0,所以这个数字是 2 -> 不是 3 的倍数。

      约束是您只能使用 2 位缓冲区来存储。

      答:总是存储余数以知道它是否是 3 的倍数。
      在上面的例子中,
      雷姆 = 1%3 = 1
      当 0 到来时,新的剩余 = 2*1 + 0 = 2 %3 = 2。

      等等。

  • 第四轮:
    1. 给定排序但旋转数组的代码,找到给定数字的上限。
    2. 项目讨论。
      易变的关键字。
      讨论extern和static的使用。
    3. 大端和小端架构。
      如何识别是大端还是小端。

    如果使用 big-endian 架构将某些内容写入磁盘,然后使用 little-endian 架构读取,会发生什么情况?

  • 第五轮:
    这里问了2个问题,我真的不知道答案。
    我只是尝试了所有可能的方式并分析了利弊。
    1. 给定一张矩形纸和一组非常不规则的形状。
      我要从纸上剪下这些形状,用这样的方式
      所有的部分都“很好地混合在一起”,纸张的浪费是最小的。
      当我说不规则时,它也可以在中间有一个洞。
    2. 现在说,在触摸屏显示器上,你有那些不规则的碎片。
      你触摸一个点并滑动它,相应的部分应该朝那个方向移动。这个游戏是交互式的,需要很好的时间复杂度。
    3. 给定一个相当大的数字,需要判断该数字是否属于斐波那契数列。
      您不能生成斐波那契数列中的所有数字。

      那时我不知道检查这一点的直接公式。
      于是尝试了矩阵乘法的方法来计算第n斐波那契数。
      我计算了一个数字,第二个数字,第四等等,直到数字超过给定的数字。
      然后使用二进制搜索来追踪答案。

    4. 被问到是否可以提高硬件性能。
      我说的是通过在四个核心上并行计算矩阵的所有四成员(如果有的话)。他看起来很满意。

要求解释 MVC 设计模式。

感谢 GeeksforGeeks 提供的很棒的资源!
干杯!

Adobe的所有练习题!