
來更新刷題心得~這次是 Array and string環節(Array的部分)Array 的幾個核心觀念1. In-place 操作:直接在原始陣列上修改,不建立新結構,節省空間
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 概念:「矩形網格」結構,用索引 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 順序,會比想演算法更快。
大多2D 題都可歸納成以下類型:固定方向走訪、循環走訪、逐層生成(Triangle)因為寫這些題目就好奇實務會應用在哪些情境1. 影像處理: 每種遍歷路徑都是一種「掃描方式」
2. 資料壓縮與編碼:對角線或螺旋順序可壓平 2D 資料,保留鄰近關聯性Next : Array and String(String的部分)

來更新刷題心得~這次是 Array and string環節(Array的部分)Array 的幾個核心觀念1. In-place 操作:直接在原始陣列上修改,不建立新結構,節省空間
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 概念:「矩形網格」結構,用索引 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 順序,會比想演算法更快。
大多2D 題都可歸納成以下類型:固定方向走訪、循環走訪、逐層生成(Triangle)因為寫這些題目就好奇實務會應用在哪些情境1. 影像處理: 每種遍歷路徑都是一種「掃描方式」
2. 資料壓縮與編碼:對角線或螺旋順序可壓平 2D 資料,保留鄰近關聯性Next : Array and String(String的部分)