📜  高盛 SDE-2 面试经验 |班加罗尔 2021(1)

📅  最后修改于: 2023-12-03 15:42:32.788000             🧑  作者: Mango

高盛 SDE-2 面试经验 |班加罗尔 2021

面试流程

整个面试流程大致分为以下几个步骤:

  1. 初试:包含一轮在线编程测试和一轮HR面试。
  2. 复试:包含四轮技术面试,其中一轮包括系统设计和架构设计。

在初试中,编程测试题目难度适中,主要考察算法和数据结构的应用能力,如树的遍历,动态规划,贪心算法等。HR面试主要考察个人技能和背景,如工作经验和项目经验等。

在复试阶段,四轮技术面试比较重要,其考察方向包括算法和数据结构,设计模式和系统设计和数据库和操作系统基础。

经验心得

对于初试,建议提前刷一些高频的算法和数据结构题目,如二叉树,图论,链表等,从而提高自己的编程能力和应变能力。此外,在HR面试时要展现出自己的技术实力和能力优势,以及在团队中的贡献和责任感,这会给面试官留下一个好的印象。

在复试阶段,需要注意以下几点:

  1. 面试前要对公司和职位的需求有一定的了解和了解面试的技术方向和知识点。
  2. 在算法和数据结构面试中,注意运用基本的数据结构和算法知识解决问题,要注意代码的编写风格和时间复杂度等。
  3. 在设计模式和系统设计面试中,需要考虑到系统的可扩展性,性能和良好的设计模式和架构,以及考虑系统整体架构。
  4. 在数据库和操作系统基础面试中,需要了解数据库的相关技术、系统的基本原理和操作,以及服务器的配置与管理等。

综合来说,面试的过程需要多加练习和思考,对自己的技能和优势有一个实际的评估,以及对公司和职位有一个深入的了解,这是成功通过面试的关键之一。

代码片段
public class BinaryTreeTraversal {
    private static class Node {
        int val;
        Node left, right;

        Node(int v) {
            this.val = v;
        }
    }

    public static void inorder(Node node) {
        if (node == null) return;
        inorder(node.left);
        System.out.print(node.val + " ");
        inorder(node.right);
    }

    public static void postorder(Node node) {
        if (node == null) return;
        postorder(node.left);
        postorder(node.right);
        System.out.print(node.val + " ");
    }

    public static void main(String[] args) {
        Node root = new Node(1);
        root.left = new Node(2);
        root.right = new Node(3);
        root.left.left = new Node(4);
        root.left.right = new Node(5);

        System.out.print("Inorder: ");
        inorder(root);

        System.out.print("\nPostorder: ");
        postorder(root);
    }
}

以上是二叉树的遍历,其中inorder和postorder分别为中序遍历和后序遍历。其中,inorder函数先遍历左子树,然后打印当前节点的值,再遍历右子树;postorder函数先遍历左子树,再遍历右子树,最后打印当前节点的值。二叉树的遍历是一个经典的算法问题,在SDE-2面试中也是一个比较常见的面试题目,因此需要熟练掌握。