📜  SDE-1 的 MindTickle 面试体验(后端)|校外(1)

📅  最后修改于: 2023-12-03 14:47:20.282000             🧑  作者: Mango

SDE-1 的 MindTickle 面试体验(后端)|校外

经过一番准备,我终于迎来了 MindTickle 的面试,以下是我的面试体验:

面试官介绍

我的面试官是一位非常友善的工程师,他先为我介绍了 MindTickle 是做什么的,以及该公司的主要产品和技术栈等内容。在介绍完公司背景后,他就开始了我的面试。

编程题

我的第一道编程题是:给定一个长度为 n 的整数数组 nums,其中有一个元素仅出现一次,其余元素均出现两次。找出那个仅出现一次的元素。

我使用异或运算的方法解决了这个问题,代码如下:

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        result = 0
        for num in nums:
            result ^= num
        return result

面试官还要求我手写一下异或运算的原理,我简单地解释了一下,面试官也非常满意。

SQL 问题

接下来,面试官问了我一个 SQL 的问题,大意如下:

给定一个数据表 orders,其中包含一些订单信息,包括订单 ID、订单日期、订单金额和客户 ID 等字段。请编写一条 SQL 语句,找出每个客户的第二个订单日期和订单金额。

我使用了窗口函数的方法解决了这个问题,代码如下:

SELECT
    customer_id,
    order_date,
    order_amount
FROM
    (
    SELECT
        customer_id,
        order_date,
        order_amount,
        ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY order_date) AS rn
    FROM
        orders
    ) AS tmp
WHERE
    rn = 2;

面试官对我的 SQL 语句很满意,还根据我的代码和一些细节进行了一些深入的探讨和讨论。

总结

整个面试过程非常愉快,面试官对我提出的问题进行了耐心的指导和解答,我也向他请教了一些问题。虽然有些问题需要我跳过,但整个面试下来,我觉得我的表现还是不错的。