一房地产数据服务初创公司的面经

北美一有关房地产开发和服务的初创公司面经。

因为新冠疫情的原因,很多面试都已经放到网络上了。在北美进行面试之前,还是建议所有打算从事 IT 的童鞋对基础概念都要熟悉一点点。

如果你是学习 Java 或者面向对象的话,通常使用的一些框架,云平台(主要是 AWS)都需要有一些了解才好。

针对 Java 来说,有关面向对象的概念,包括有什么是依赖注入,什么是反转,什么是组件,继承关系,接口,实现等等,都需要有一些基本的了解。

在面试的时候大部分情况都会问到上面的概念。

在搞清楚上面的概念后,就会有一些实际的算法了,其实这些实际的算法算不上难。正常人突击下基本上都可以掌握,唯一比较麻烦点的地方就是使用各种在线平台手动直接写。

其实这也能够看出来面试公司是否人性化的

hashtable 是如何实现的

这个题目还是有点意思的。

很多人都知道 HashTable, 都知道 HashTable 或者 HashMap 是用来存储 K-V 的。但是至于 HashTable 是如何实现的,可能有很多人不知道。或者就算知道可能也不是非常容易的表述清楚。

这个题目的目的就是要求你设计一个 HashTable。在这个题目中,需要搞清楚几个知识点,K 是怎么存储的,V 又是怎么存储的,其中有一个非常重要的概念就是 K 的哈希(Hash)。

有关什么是 Hash 和 Java 中的哈希函数,请参考文章 Java hashCode() 方法 中的内容。

准确的来说进行 Hash 就是对对象进行或者数据进行散列。当你拿到散列的整形数据后,你将会考虑如何将这一个整形数据存储到一个数组中,这个就是你需要的 Hash 表。通常的算法可能就是去模了。

当然假设你有 10 个数据,但是数组正好也是 10 个,那么最好的算法就是每一个数据存储在一个空间中。

当然实际情况可能就不是这样的了,假设你有 11 个数据,但是存储空间直邮 10 个,那么就肯定有 2 个数据存储在同一个位置。这个时候你就可以使用链表来将存储在同一个空间的数据链下去。

500px-Hash_table_5_0_1_1_1_1_0_LL.svg

如上图显示的就是一个典型的 HashTable 的结构。

对一般的面试来说,掌握这么多的内容基本上能够考察你对基本数据结构的了解,以及对 HashTable 的了解。

如果还需要了解更多的,有关 HashTable 的负载因子,扩容等等的研究的话,其实已经超出了面试本身的范畴了。

正常人如果不是认真复习过,或者没事刷一下的话一般比较难答出来。

相信很多人都是使用 HashTable 或者 HashMap,其实很少去了解里面具体的算法和结构,说心里话也真心没有太大必要去了解。

在这个时候如果面试官揪着这堆东西不放,或者非要你说明白里面的很多配置。那基本上可以说明给你面试的人有病或者是有点孔乙己的意思了。

当然,还是建议在面试的时候复习下 HashTable 和 Hashmap 的关系,如果你真想啃一下的话,不妨去看看源代码。

100 以内素数编程,在线写

题目要求非常简单,就是将 100 以内的素数打印出来就可以了。

这个题目的难度并不大。但是如果你没有遇到过或者没有刷过这个题目的话,可能就会被搞懵逼了。

这个题目有几个关键点,首先 1 是一个特殊的素数,因此你的循环需要从 2 开始。这个很多时候和我们使用的循环从 0 开始有不同。

这个题目能够快速解答的关键就是需要使用定义的函数来做,尽量不要在循环里面嵌套循环,因为这样你会很难跳出这个循环,并且循环的起止判断不好判断。

了解了这 2 个点以后就可以比较容易的解决这个问题了。

有关素数的算法中间和代码,请参考:Prime numbers from 1 to 100 (打印 100 以内的素数) 中的内容。

面试总结

这次面试时今年开始打算换工作以来的第一次面试,因此本身就是当成练手的性质了。

很多工作过比较长时间的人都会知道,在找工作之前,需要进行突击的算法,数据结构,基础概念的巩固。因为在实际工作中,这些东西没有人会用到,也没有人会无聊到去刷这些东西。

但是找工作的时候确不得不进行了解了。

总结这次面试来说就是准备不充分,基本上没有刷题就上去写了,而且有一段时间没有在记事本上写代码了,因此基本上是被他们搞懵逼了。

一上来就弄 HashTable 的算法,这个其实还是有点难度的,如果没有认真复习过一些常用的数据结构的话,肯定是做不出来的。

因为不是非常理想的状态来进行面试的,那么这个结果就可想而知了。

当然这 2 个题目用于巩固下基础还是非常不错的。

 

https://www.ossez.com/t/topic/13441

posted @ 2021-04-29 12:00  huyuchengus  阅读(38)  评论(0编辑  收藏  举报