iT邦幫忙

2021 iThome 鐵人賽

DAY 1
1
自我挑戰組

【帶你輕鬆入門演算法-Leetcode】系列 第 1

【第一天 - Leetcode 介紹】

Q1. 什麼是 Leetcode ?

  • Leetcode 是一個線上練程式網站,收集了許多軟體工程師面試考古題
  • 許多軟體公司在面試時會給你題目,讓你思考如何解決,並在一個白板上進行講解
  • 所以在解 Leetcode 的時候,建議除了刷題,也能把邏輯釐清,能用以畫圖的方式講解給其他人聽

Q2. 為什麼要刷 Leetcode ?

  • 刷 Leetcode 可以訓練演算法、鍛鍊邏輯能力,強迫自己用有限的成本完成任務
  • 一個好的工程師,撰寫程式會考慮到「成本」,不論是執行效率、執行所需要的記憶體空間
  • 相信你也不會想,Google 搜尋一個關鍵字,結果他跑個一小時才顯示出來吧 ? 現代人時常使用 Google 查詢資料,而背後有數兆筆網頁,如何塞選出你所需要的關鍵字呢 ? Google 搜尋引擎背後有一系列演算法, 並且在過濾搜尋結果時會考量許多因素,例如查詢的字詞、網頁的關聯性和實用性、資訊來源的專業度、內容的新鮮度,以及您的所在位置和設定等。
  • 順帶一提,Google 搜尋也提供許多搜尋技巧,例如指定路徑、檔案類型,網路也能搜尋到許多 「Google Hacking」 的文章與書籍

Q3. Leetcode 優點 ?

  • 題目來自企業大公司的真實面試題
  • 寫完程式有效率排行榜,可以看到執行成本比你的低的程式 (可以分別看到執行效率排行、執行所需記憶體排行),這個是最吸引我的優點
  • 若購買 Premium ,你可以針對 Google、Microsoft,、Facebook、Apple 公司面試考古題進行刷題

Q4. Leetcode 注意事項 ?

  • 題目都會限制執行時間,思考題目解法的時候,可以先計算時間複雜度來看是否可行
  • 題目須注意邊界問題,例如題目的特殊情況、極小值、極大值的情況 (寫題目就會知道了)

Q5. 本系列文章要做什麼 ?

  • 本系列將盡量以簡淺易懂的方式,介紹以下企業常考的14種概念/演算法 + 使用 python 刷 Leetcode 並進行程式分析 (至少刷一題 easy 題)
    • Stack
    • Queue
    • Bubble Sort
    • Quick Sort
    • Two Pointers
    • recursion
    • Linked List
    • Dynamic Programming
    • Binary Tree
    • Graph
    • DFS
    • Floyd-Warshall
    • Dijkstra
    • 系統設計

下一篇
【第二天 - Stack 介紹】
系列文
【帶你輕鬆入門演算法-Leetcode】30

尚未有邦友留言

立即登入留言