目錄
1.寫在之前
2.前情提要
3.Unit1重點分享
4.接下來就是實戰練習們
4.1印出1–100的奇數
4.2fizzbuzz
4.2.1fizzbuzz(解法一)
4.2.2fizzbuzz(解法二)
4.2.3解法一的pseudo code
4.2.4解法二的pseudo code
5.參考資料
寫在之前
前情提要
接續著上一篇,這是學習Unit1 的筆記摘要,終於可以開始寫了太期待了!
(但明明標題就叫你不要急了…),繼續訓練著解題思維的腦袋。
我該怎麼想,我該怎麼寫,我該怎麼解
Unit1重點分享
- 世界上有兩種人: 用想的就解的開、光想就想不出來怎麼解(先想一下自己是哪一種人)
- 第一種人"用想的就解的開",可以再細分成三個等級:
- 已經想到了,但寫不出來
- 解開了但很慢
- 解開效率很好
3. 第二種人呢~其實跟第一種人第一個等級挺像的,(一個是想到了寫不出來,一個是想不出來也寫不出來)
4. 遇到這樣的困境時,有一個救星出現了-pseudo code(中文是虛擬碼)
5.甚麼是pseudo code? 簡單來說他用來表達演算法,而不拘泥於具體的實現(附上維基百科連結)
6.先寫出pseudo code,再來就是翻譯了!把pseudo code翻成code
我很喜歡這一個動作,我會拿起紙跟筆,開始寫、開始畫畫,把腦中的想法寫成文字,寫出一些中英夾雜的"邏輯",他們就是所謂的演算法,再把演算法一塊一塊的變成了code
接下來就是實戰練習們
印出1–100的奇數
fizzbuzz
fizzbuzz(解法一)
fizzbuzz(解法二)
順帶一提,fizzbuss的兩種解法,第二種解法應該是較優的,最大的原因是不需要知道全部的條件後再去做判斷,每一個條件是獨立的。
這個意思用一個假設來說明,假設題目再變個更複雜為:
如果被3整除印Fizz,如果被5整除印Buzz,如果被7整除印Python。
解法一的pseudo code:
解法二的pseudo code:
在這兩個解法上可以得知,當題目的條件越多後,判斷式的複雜度就會提高,而如果把每個條件當作獨立的,也獨立的去做判斷,當條件增加時複雜度不會變高,這樣的效能會比較好。
參考資料
簡單的 FizzBuzz 藏有 深度(google 面試題)
❤️感恩看到這裡的你,希望這篇文章有幫上你👏歡迎拍手給我鼓勵,我是甜不辣馬拉松,我們下次見