📅  最后修改于: 2023-12-03 14:47:20.282000             🧑  作者: Mango
经过一番准备,我终于迎来了 MindTickle 的面试,以下是我的面试体验:
我的面试官是一位非常友善的工程师,他先为我介绍了 MindTickle 是做什么的,以及该公司的主要产品和技术栈等内容。在介绍完公司背景后,他就开始了我的面试。
我的第一道编程题是:给定一个长度为 n 的整数数组 nums,其中有一个元素仅出现一次,其余元素均出现两次。找出那个仅出现一次的元素。
我使用异或运算的方法解决了这个问题,代码如下:
class Solution:
def singleNumber(self, nums: List[int]) -> int:
result = 0
for num in nums:
result ^= num
return result
面试官还要求我手写一下异或运算的原理,我简单地解释了一下,面试官也非常满意。
接下来,面试官问了我一个 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 语句很满意,还根据我的代码和一些细节进行了一些深入的探讨和讨论。
整个面试过程非常愉快,面试官对我提出的问题进行了耐心的指导和解答,我也向他请教了一些问题。虽然有些问题需要我跳过,但整个面试下来,我觉得我的表现还是不错的。