今天很悲催,心中向往的公司,打電話過來面試,問到我兩個問題,結果竟然都沒有回答上,傷心了,記錄下今天失敗,希望以后不要被同樣的問題給PASS.
問題1.如何判斷是否為閏年
所謂閏年那就是:四年一閏,百年不閏,四百年再閏。
其實代碼也就是 if((n%4 == 0 && n%100 != 0) || n %400 == 0){} 最原始的方法。
記不住判斷閏年的定義,導致無法回答。
問題2.如何獲得單鏈表的倒數第K個元素(時間復雜度最小)
方法(1) 首先查找到整個鏈表中的元素個數, 然后再一次遍歷該數組,找到第n-k+1個元素,即為所求。
缺點:這需要兩次遍歷鏈表,當鏈表中的元素個數很多的時候,耗費時間。
方法(2):定義兩個指針p,q,初始時都指向頭節點間,然后q向后移動,p則保持不動。
當q移動到第K個位置的時候,pq兩個節點同時向后移動,當q達到鏈表尾部的時候, p節點所指向的位置,即為所求。
看起來很簡單,可是面試的時候,這些真不知道如何去答。
希望以后不要再在這里跌倒了!!!
新聞熱點
疑難解答