面試總結——演算法篇
阿新 • • 發佈:2019-02-03
最近去今日頭條面試,面試的是Java崗位,面試一輪下來,著實認識到自己演算法基礎和資料結構上的不足,拋開頭條喜歡面試演算法題目之外,其他大部分一線網際網路公司也基本都喜歡在一面、二面技術面中新增簡單演算法的考驗。其實我也覺得這是一種能力的體現,無論有沒有真的做過演算法,但至少應該想一想如何優化基礎設計。
演算法的關鍵可能就在於如何更有效、更快速的實現某種功能。之前面試也基本上沒有做過演算法相關的複習,幾年業務開發下來,連大學時候資料結構最基礎的排序和遍歷演算法都忘得差不多了,即使記得邏輯,手寫程式碼的能力也被IDE工具給慣壞了。其實也不是說IDE的壞處,只是有些基礎的能力還是不應該喪失的。
以前只會感嘆人家的想法好精妙,確實好用又高效,自己也要做點改變了。
決定刷一下leetCode,就算不為了面試,至少也可以讓自己想的更多,想的更靈活。
leetCode是經同學介紹的網站,據說有很大一部分演算法面試題都在leetCode的題庫中,甚至是完全一樣,既然想好要學點什麼就要一點點慢慢的啃吧。題目涉及別家網站版權,就不在這裡說什麼了,本來還想每日一刷讓大家幫忙做個監督,估計不太合適了。
為了更好的自己,加油!
用了三天左右空餘時間,把SQL簡單刷了一遍,歸納一下。
使用到的大部分是left join、inner join、group by、order by、count,偶爾使用了一點limit
大部分操作都是通過關聯子表、where語句條件限定、
SQL型
- 第幾大型:如:第二高薪資,子表、limit等操作實現
- 查重複型:如:重複郵箱,group by,count()資料,子表關聯查詢
- 行間比較型:如:比昨天資料大,inner join + 行間特性(如一天一條、Id遞增等)+ 資料比較
- 分組topN型:如:每班前三名、前三成績等,inner join + top、count + where條件分組限定 + order by
- 行間交換型:更新操作,IF、CASE、WHEN等條件判斷
演算法型
- 陣列——兩數之和:HashMap便於查詢,減小時間複雜度。
- 字串反轉:char遍歷,棧操作。
- 迴文字:一分為2,遍歷一半。