第十三屆

software-dev
算法30天
edwin777

系列文章

DAY 1

Day.1 前言

今年是第二次參加,這次一樣努力以不斷賽為目標 不知不覺默默已經工作好一陣子了,從一開始覺得演算法好像用不太到,離我好像很遠,慢慢開始發現到處都是資料結構跟演算法...

DAY 2

Day.2 什麼是時間、空間複雜度?

時間複雜度(Time complexity) 我們要怎麼知道一個程式要跑多久? 正常來說要真的執行下去才精準知道,那有沒有事前可以預估的方式? 有的,一般來說我...

DAY 3

Day.3 天秤的兩端

為了解釋時間跟空間的取捨,來一條leetcode的題目,就是最經典的第一題Two Sum 輸入一組array、數值target,請從array中尋找兩個數字加總...

DAY 4

Day.4 Two Pointer

Leetcode #167 Two Sum II題目跟上一篇的Two Sum是一樣的,差別在array是經排序的。 Two Pointer是一種演算法技巧,大家...

DAY 5

Day.5 Slide Window

Leetcode #209. Minimum Size Subarray Sum 簡單來說題目會給一組array、數值target,尋找可加總>=targ...

DAY 6

Day.6 線性資料

線性的資料儲存方式一般有兩種 array (陣列) list node (鏈結) 這兩種差別到底在那,幹嘛不都用array就好了,簡單易用!? 為了要解釋這...

DAY 7

Day.7 鏈結

什麼是鏈結? 每一個節點上,都記著了下一個節點的地址 這樣做法的好處是可以用非連續的空間來儲存資料,避免掉連續空間會不足的問題 這種資料結構叫單向鏈結,每一個節...

DAY 8

Day.8 Reverse Linked List

Leetcode #206. Reverse Linked List 簡單來說這一題要做反轉鏈結ex.input: 1->2->3->4ou...

DAY 9

Day.9 Add Two Numbers

Leetcode #2. Add Two Numbers 簡單來說就是要做兩個鏈結的加總 ex.1Input: list 1: 2->4->3, l...

DAY 10

Day.10 Stack

Stack(堆疊)是一種後進先出(LIFO)的資料結構 看一下圖 註:圖源 你可以想像一下在廚房洗碗,盤子在洗手臺堆起來,你一定是從最上面開始開,不會從最底。...