1、用遞歸寫一個算法,計算從1到100的和。
func sum(value: Int) -> Int {
if value <= 0 {
return 0
}
var number = value
return value + sum(value: number - 1)
}
// 計算過程
let result = sum(value: 100)
print(result)
寫完算法之后又圍繞著問了幾個問題,都是算法基礎:
算法的時間復雜度是多少
遞歸會有什么缺點
不用遞歸能否實現,復雜度能否降到O(1)
2、property的作用是什么,有哪些關鍵詞,分別是什么含義?
3、父類的property是如何查找的?
4、NSArray、NSDictionary應該如何選關鍵詞?
5、copy和muteCopy有什么區別,深復制和淺復制是什么意思,如何實現深復制?
6、用runtime做過什么事情?runtime中的方法交換是如何實現的?
7、講一下對KVC合KVO的了解,KVC是否會調用setter方法?
8、__block有什么作用
9、說一下對GCD的了解,它有那些方法,分別是做什么用的?
10、對二叉樹是否了解?
面試官是想接著問這方面的問題的。我當時說了不了解,然后就沒有后續了。
長城公司移動開發工程師面試題
1、ARC和MRC的區別,iOS是如何管理引用計數的,什么情況下引用計數加1什么情況引用計數減一?
2、在MRC下執行[object autorelease]會發生什么,autorelease是如何實現的?
3、CoreAnimation是如何繪制圖像的,動畫過程中的frame能否獲取到?
4、談一下對Runlop的了解?
5、OC如何實現多繼承?
這個當時沒有答好。其實借助于消息轉發,protocol和類別都可以間接實現多繼承。
6、對設計模式有什么了解,講一下其中一種是如何使用的。
7、有沒有哪個開源庫讓你用的很舒服,講一下讓你舒服的地方。
我這里說了RxSwift中的觀察者模式,和響應式編程。然后面試官問,如果要用OC實現一套RxSwift那樣的邏輯應該怎么做。我回答的是結合KVO,將一些需要觀察的屬性,通過KVO進行監聽,然后通過block回調出來。
面試是微信語音面試,沒開攝像頭,面試官有兩個人,問了一下簡歷上的東西。問之前投過什么公司,有沒有offer,將一個項目展開講一下。說一下你遇到的問題,怎么解決的。
面試官問的面試題:長城公司控制策略開發工程師面試題
問了幾個車輛理論的專業知識。簡歷上的項目。問之前投過什么公司,有沒有offer,將一個項目展開講一下。說一下你遇到的問題,怎么解決的。
兩輪面試 第一輪面試HR面主要針對簡歷上的內容進行深挖,第二輪專業面,如何搭建一個財務模型,公司金融的一些專業知識
面試官問的面試題:長城公司助理研究員面試題
兩輪面試 第一輪面試HR面主要針對簡歷上的內容進行深挖,第二輪專業面,如何搭建一個財務模型,公司金融的一些專業知識