一房地產數據服務初創公司的面經

北美一有關房地產開發和服務的初創公司面經。

因爲新冠疫情的原因,很多面試都已經放到網絡上了。在北美進行面試之前,還是建議所有打算從事 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章