這堂課在幹嘛?
科普(幹
我知道大家都是大師
而且加上其實能上課的時間不多
我自己是定義成:
幫助大家在閒暇時間
繼續提升自己程式能力的課程
那說真的這堂課要幹嘛

1.教一點C++
2.教一點Data Structure
3.教一點Algorithm
4.教一點Functional progamming

學這些要幹嘛?
真正的目的是
程式解題!!!!
如果不打比賽
程式解題有甚麼用?
1.好玩
2.加強程式實踐能力

3.面試

先來看一題知名的面試題
摺紙問題
Paper folding problem
[題目]
把一個紙條放在桌子上,然後從紙條的下邊向上方對折一次,壓住摺痕後展開.此時摺痕式凹下去的,如果從紙條下邊向上方連續對折兩次,壓住摺痕後展開, 此時有三條摺痕,從上到下依次是下摺痕  下摺痕  上摺痕
[Input] 輸入一個正整數N,代表的是由下往上對折的次數
[Output] 輸出由上到下依次的摺痕方向
Ex:
[Input] N=2
[Output] down,down,up
這題是網路上滿知名的微軟面試題
我一個朋友在面試北京Amazon也遇到
基本上面試題只會給你30秒思考
接下來就要開始跟面試官交流想法
這在微軟面試也只是放在第一題
代表這題是熱身而已
到現在還沒有解出來
就更不用想要提出
好的解法在面試加分了
解:binary tree的中序遍歷
(懶得做到投影片上直接用講的)
你以為你現在提不出這個
解法是因為沒修過資料結構?
錯!
就算修過資料結構
沒有經過大量的實戰練習
是不可能直覺地想到這個解法的
這就是這節課的目的
訓練編程直覺