avatar-avatar
Karen
更新 發佈閱讀 2 分鐘

Array 的幾個核心觀念:

1. In-place 操作:直接在原始陣列上修改,不建立新結構,節省空間從 O(N) → O(1)。

2. Two Pointers(雙指標):用兩個指標同時移動,常見於排序或區間問題。

3. Subarray(子陣列):連續的一段,如 [2,3,1,2,4] → [3,1,2]。

4. Subsequence(子序列):不必連續,如 [2,3,1,2,4] → [2,1,4]。

練習題: 可以思考 return 的條件,有些達到條件即可 return 不用跑完整個 loop (例如: 724. Find Pivot Index、66. Plus One)


2D Array 的概念:用 index A[i][j] 存取資料可分成:
1. 靜態陣列:長寬固定(例:int A[3][4])
2. 動態陣列:大小可變,可用 arr.append([7,7]) 新增列重點在於: 同時處理兩個維度的座標變化


思考方向:
1. 看 index 變化規律:
遇到明顯的「座標走法」題,優先觀察 i、j 的變化規律。
像對角線題可用 i+j、螺旋題要維護 top/bottom/left/right。

2. 想空間結構: 先畫出矩陣,再觀察 travel 順序,會比想演算法更快。

3. 規則統整: 大多 2D array 可歸納成 固定方向、循環走訪(Spiral、Snake、Zigzag)、逐層生成(Triangle、DP)


因為寫這些題目就好奇,實務應用可能在哪些情境

1. 影像處理:矩陣即像素,每種遍歷路徑都是一種「掃描方式」。
2. 資料壓縮與編碼:對角線或螺旋順序可壓平 2D 資料,同時保留鄰近關聯性。
3. 資料視覺化:螺旋或對角模式常用來轉換高維度資料到 1D 呈現。next : Linked List

Carry Kuo-avatar-img
Carry Kuo和其他 1 人喜歡這篇
avatar-img
加入討論
avatar-avatar
Karen
更新 發佈閱讀 2 分鐘

Array 的幾個核心觀念:

1. In-place 操作:直接在原始陣列上修改,不建立新結構,節省空間從 O(N) → O(1)。

2. Two Pointers(雙指標):用兩個指標同時移動,常見於排序或區間問題。

3. Subarray(子陣列):連續的一段,如 [2,3,1,2,4] → [3,1,2]。

4. Subsequence(子序列):不必連續,如 [2,3,1,2,4] → [2,1,4]。

練習題: 可以思考 return 的條件,有些達到條件即可 return 不用跑完整個 loop (例如: 724. Find Pivot Index、66. Plus One)


2D Array 的概念:用 index A[i][j] 存取資料可分成:
1. 靜態陣列:長寬固定(例:int A[3][4])
2. 動態陣列:大小可變,可用 arr.append([7,7]) 新增列重點在於: 同時處理兩個維度的座標變化


思考方向:
1. 看 index 變化規律:
遇到明顯的「座標走法」題,優先觀察 i、j 的變化規律。
像對角線題可用 i+j、螺旋題要維護 top/bottom/left/right。

2. 想空間結構: 先畫出矩陣,再觀察 travel 順序,會比想演算法更快。

3. 規則統整: 大多 2D array 可歸納成 固定方向、循環走訪(Spiral、Snake、Zigzag)、逐層生成(Triangle、DP)


因為寫這些題目就好奇,實務應用可能在哪些情境

1. 影像處理:矩陣即像素,每種遍歷路徑都是一種「掃描方式」。
2. 資料壓縮與編碼:對角線或螺旋順序可壓平 2D 資料,同時保留鄰近關聯性。
3. 資料視覺化:螺旋或對角模式常用來轉換高維度資料到 1D 呈現。next : Linked List

Carry Kuo-avatar-img
Carry Kuo和其他 1 人喜歡這篇
avatar-img
加入討論