一般去公司裡邊面試都是有一面、二面的。一面一般是一些基礎題,博主覺得只要多刷刷網上的面試題,你面試的時候會碰到好多原題。
乙隻青蛙在井底,每天往上跳三公尺,會往下滑一公尺,若井高99公尺,青蛙什麼時候從井裡邊跳出來(包括邊緣)? 若井高n公尺,又需要多久從井底跳出。
解答:青蛙相當於每天跳2公尺,第48天跳了96公尺,第49天往上跳三公尺就到達99公尺井口了,這時候不會往下掉了,所以青蛙需要49天跳出井底。
其實分析就知道 天數 = n // 2 (n整除2)
大華想要提高經濟收入,所以在試賣皮鞋。一天,他花50元從皮鞋廠買了一雙皮鞋,結果一直沒賣出去,所以大華降價處理,皮鞋被37元賣出去了,買家沒有零錢,拿了100元假鈔給大華,大華沒有識別出來100元假鈔,而且他自己也沒有零錢,就拿這100元和鄰居換零錢。從鄰居那邊換到零錢之後,大華找零給買家,把皮鞋賣出去了。後來,鄰居將100元存入銀行的時候,發現這100元是假鈔,這100元就被銀行沒收了,大華知道之後,就賠償了100元給鄰居。問最後,大華虧了多少錢。
總計算大華支出多少就可以得到結果了 50+63+100+100
有乙個10級台階,台階可以一次上一級,也可以一次上二級,問走到10級台階,有多少種走法。如果是n級台階呢?(請給出**)
遞迴分析:
到達10級台階應該=到達9級台階的走法次數+到達8級台階的走法次數
一級台階只有一種走法,二級台階有兩種走法(這是遞迴的終止條件)
寫遞迴表示式的第一要義,就是列出總算式
# 遞迴法求n級台階的走法
def steps(n):
if n == 1 or n == 2:
return n
return steps(n-1)+steps(n-2)
迭代分析:
# 迭代法求n級台階的走法
def steps(n):
if n < 1:
return false
# 用字典表示每級台階有多少種走法 key表示台階數 value表示走法數
mdict =
for k in range(3,n+1):
mdict[k] = mdict[k-1]+mdict[k-2]
return mdict[n]
print(steps(10))
如果從效能上分析來說,迭代法要額外花費乙個字典的記憶體空間
python list的以下操作,時間複雜度是多少?
列表實現的底層原理其實就是陣列,陣列是可以根據下標來查詢元素的
index() 根據下標查詢元素 mlist[1] 時間複雜度 o(1)
pop() 從末尾彈出乙個元素 時間複雜度也是o(1)
pop(i) 彈出指定下標的元素,涉及到元素的搬移工作,時間複雜度為o(n)
insert(i) 再指定位置插入元素,涉及到元素的搬移工作,時間複雜度為o(n)
slice[x:y] 列表的切片,時間複雜度為o(1)
將多級列表展開為一級列表,比如 [2,3,5,[1,2],[3,[2,8,[5,6],2],3]] 展開為 [2, 3, 5, 1, 2, 3, 2, 8, 5, 6, 2, 3]
其實這題考得就是遞迴,類似於遞迴求乙個資料夾下的所有檔案
def extend_list(mlist):
all_list =
for m in mlist:
if isinstance(m,list):
all_list.extend(extend_list(m))
else:
return all_list
print(extend_list( [2,3,5,[1,2],[3,[2,8,[5,6],2],3]] ))
結果:
[2, 3, 5, 1, 2, 3, 2, 8, 5, 6, 2, 3]
面試總結(一)
又到了一年一度的就業高峰期,作為應屆畢業生中的一員,我也同樣為了自己的工作而奔波,經過乙個多星期的努力,拿下了四五家offer,最後選擇了一家自己比較滿意的公司 下面對求職當中遇到的一些問題進行下總結。一 簡歷準備 乙份好的簡歷是你個人的敲門磚,現在找工作基本上都是通過網上投遞你的簡歷,然後等待公司...
面試總結 一
記錄 2017年8月11日模擬面試問題及答案,許多自己答得很模糊,再次總結語言。面試總結 二 回答基於jdk1.8,低版本部分答案不適用 1.equals和 區別?答 在基礎資料型別中比較其大小,引用型別比較記憶體位址。equals在不重寫的情況下與 相同,重寫後是按照其本身方法內部規則進行判斷。任...
面試總結 (一)
單引號和雙引號的區別 單引號不解析 雙引號解析 在某些特定情況下,單引號效率要比雙引號高 xml和json的區別 js的五種資料型別,並說明原始資料型別和引用資料型別的區別 js的基本資料型別 number string boolean null和undefined 區別 說明myisam和inno...