📌  相关文章
📜  软件工程师的全球分析面试经验|校园 2020

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

软件工程师的全球分析面试经验|校园 2020

在线测试和面试过程非常标准。大约 280 人参加了在线测试,他们选出了 12 名学生进行面试。面试过程是虚拟的,有 3 轮:

第1轮:

  1. 计算二维布尔矩阵中可以由 1 组成的子矩阵的数量。 (在线测试问题的优化解决方案)

  2. 在 0s(水)和 1s(陆地)的 2d 矩阵中计算 1s 形成的岛屿的数量。

    例如:

    [0 0 1]
    [1 0 0]
    [1 1 1]
    #islands=2
  3. 给定两个带有一些字符的字符串和 '#' 表示退格...检查在相应地完成退格后它们是否都产生相同的字符串(解决有和没有额外空格)

    例如:

    ab#c and acbc## result in the same string “ac”
  4. 给定一个正整数和负整数数组。您可以在一次跳转中从索引 i 跳转到:i+1、i-1 和 k,其中 k 是数组中的任何其他索引,其中 arr[i]==arr[k]。从第一个索引开始,找到到达数组末尾所需的最小跳转次数。

第 2 轮:

  1. 解释你的机器学习项目。
  2. 线性回归如何工作?
  3. 什么是均方误差?
  4. 什么是梯度下降?
  5. 解释您网站的登录模块代码。
  6. 您将如何使用会话和 cookie?
  7. 分类与回归
  8. 规范化形式(1-3)
  9. RDBMS 中的 ACID 属性
  10. 您将如何在 RDBMS 中实现隔离?
  11. 写一段代码来求 BST 的高度。

第 3 轮(导演):基于字符指针和 malloc() 的 ac 程序的输出。解释每一行发生的情况:

  1. 该程序是这样的:

    C
    #include
    #include
    #include
    void func(char *str)
    {
       str=(char*)malloc(500);
       strcpy(str,"global analytics");
    }
    int main(void)  
    {
      char *str=(char *)malloc(50);
      strcpy(str,"hello");
      func(str);
      printf("%s -- %d",str,(int)strlen(str));
      return 0;
    }


  2. 关于内存分配和程序中的指针的一些深入问题,例如变量实际存储在哪里以及它们是如何存储的。
  3. char 可以容纳的最大数字是多少?
  4. stdio.h 里面会有什么?
  5. python的字典有什么用?
  6. 解释任何一个项目。
  7. 他还从我的 GitHub 中挑选了另一个项目,并请我解释代码

最后,一些人力资源问题就是这样。