linye's Blog

全端工程師心得分享

0%

[LeetCode] Algorithm I 筆記撰寫計畫

計畫: Algorithm I

前言

演算法(algorithm),在數學(算學)和電腦科學之中,為任何良定義的具體計算步驟的一個序列,常用於計算、資料處理和自動推理。精確而言,演算法是一個表示爲有限長,列表的有效方法。演算法應包含清晰定義的指令,用於計算函式。

事情是這樣的,我剛完成 Data Structure I 筆記撰寫計畫 裡的 Day7: Linked List ,但重新整理清單之後,我的題目就被重置了,
原來是 LeetCode 強制規定這些計畫必須要在計劃時間內全部做完,不然就要重做,
我剛好在最後一天做完一半的題目,所以接下來的題目要再等七天才能做了,所以我就來換做 演算法 ~

規則大致相同:

  • 跟著進度每天做答,並記錄在這個 Blog 上。
  • 如果半小時內沒有頭緒,就參考評論區的解法,力求半小時內解完一題!

今天學了 Binary Search ,三題做完有由不懂到懂的感覺,所以你也可以發現我的成績是慢慢成長的,第二題小卡關,所以最後有參考評論區,整體來說有學到東西,非常好學習~


06/14 Day 2 Two Pointers

今天雖然題目是 Two Pointers ,但是使用的解法完全沒有學到 Two Pointers 呢,之後再補上吧~


06/15 Day 3 Two Pointers

第一題 283. Move Zeroes 自己只想出了內建函式的快速寫法,想不到怎麼用 Two Pointers 寫,於是參考了下評論區,雖然寫出來了,不過思路果然很難猜到,再努力吧~

第二題 167. Two Sum II
有想過兩種做法

  1. 兩個指針分別從頭跟尾開始遍歷
  2. 先找到中間,然後從中間開始往頭尾遍歷
    但是最後都沒寫出來,快升天了,最後參考了一下評論區的做法,的確是從頭尾開始,但是一次只動一個指針,運用的是題目兩個數字加起來等於答案,且第一個數字一定小於第二個數字的特性。

06/16 Day 4 Two Pointers

這次的筆記 06/16 就寫好了,但拖到 06/24 才上線,假日去參加了 kuso game jam 2022 ,最後做出來的 game 果然也很糞,還有隊友喝太多一直狂吐,在這邊 shout out to 我兄弟大狗。


06/24 Day 5 Two Pointers

今天是 Two Pointers 最後一天,今天的題目反而我覺得比較簡單,可能是因為 Linked List 的結構非常好懂吧~
對 Linked List 有一點認識的人可以先看第二題,看不懂再去看第一題。


08/15 Day 6 Sliding Window

  • 3. Longest Substring Without Repeating Characters Medium 題目 筆記
  • 567. Permutation in String Medium 題目 筆記




09/01 Day 10 Recursion / Backtracking

第一題之前在 Data Structure I 也有做到,這次就來補充其他寫法。


09/05 Day 11 Recursion / Backtracking


09/13 Day 12 Dynamic Programming


09/13 Day 13 Bit Manipulation

  • 231. Power of Two Easy 題目 筆記
  • 191. Number of 1 Bits Easy 題目 筆記

09/13 Day 14 Bit Manipulation

  • 190. Reverse Bits Easy 題目 筆記
  • 136. Single Number Easy 題目 筆記