本文最后更新于 120 天前,其中的信息可能已经有所发展或是发生改变。
由 ChatGPT 生成的文章摘要
本文是博主贺兰星辰分享了他在西安思科特软件有限公司后端开发实习面试的经历。面试时直接面老板,提问涉及算法题,要求O(n)时间复杂度和O(1)空间复杂度,有一题作为Homework。面试通过后进行HR面试,但博主对实习并不感兴趣。文章还列举了一些面试问题,包括开发语言、AI、container、kubernetes、TypeScript、面向对象的三大特性、Java的多态、并发资源保护、SQL和NoSQL的区别、关系型数据库设计、英语能力等问题。整体来看,面试经历相对顺利,但考验了面试者的算法能力和技术知识水平。
面试经历 - 西安思科特软件有限公司后端开发实习
于 2024/7/22 14:00 进行的为时 40 分钟的面试,因为是直推所以直接是老板面,问了一些八股以后直接就上压力问算法了。问了四道因为老板时间比较紧张只做了三道,最后一道留作 Homework,值得注意的是因为这是家外企子公司所以后续算法面试过程中题干都是由面试官直接通过英语读出来的。算法题本身都不难,但是要求 O(n) 时间复杂度和 O(1) 空间复杂度把我给难住了,前两道题基本都是被提醒了一下才意识到该怎么做......
面试完半小时后收到面试通过的通知,进入 HR 面,但是实习不太想去......
以下是面经:
- (了解是如何认识内推朋友以及个人情况)
- 你主要使用的开发语言是什么?对 AI 了解吗?(不算了解,只做过简单项目,不懂底层)对 container, kubernetes 熟悉吗,有做过项目吗?我看你对 TypeScript 也挺熟悉?
- 讲一下面向对象的三大特性?Java 有虚函数吗?我说的多态其实是动态多态,你能给我举个集体例子吗?
- 你对 Java 的并发资源保护有哪些了解?
synchronized
关键字可以用在哪些地方,都是如何生效的?对于生产者-消费者模式,Java有哪些机制可以防止产生忙等,这些机制底层是如何实现的? - 讲讲 SQL 和 NoSQL 的区别?你理解关系型数据库、primary key 和 foreign key 吗?如果让你设计一个多对多的关系,你应该如何设计表?(中间表)对于 NoSQL 呢?(这个真不会)
- 你的英语怎么样?接下来我会出几道题,用英文给你,要求 O(n) 时间复杂度和 O(1) 空间复杂度:
- 有 1-100 数字,无顺序的装入大小为 99 的数组,保证每一个数字都是单独的,找到没有放入数组的那个数字
- 有 1-100 数字,无顺序的装入大小为 99 的数组,但每一个数字可能放入数组多次,找到没有放入数组的多个数字
- 有任意数字,两个两个的装入大小为 99 的数组,共装入 49 对和一个单独的数字,找到那个单独的数字(LeetCode 136. 只出现一次的数字)
- 有任意数字放入数组,找到一个子集,使该子集所有元素递增,且长度最大(LeetCode 674. 最长连续递增序列)
- 反问