LeetCode 筆記 - 128. Longest Consecutive Sequence
挑战在無序數列中尋找最長連續子序列,且要求在 O(N) 線性時間內完成。本文分享透過哈希集合快速定位連續區間起點與延伸方向的技巧,是一篇探討如何繞過傳統排序限制、利用空間換取查詢效率的高階演算法心得。
挑战在無序數列中尋找最長連續子序列,且要求在 O(N) 線性時間內完成。本文分享透過哈希集合快速定位連續區間起點與延伸方向的技巧,是一篇探討如何繞過傳統排序限制、利用空間換取查詢效率的高階演算法心得。
挑戰在不轉換為列表的情況下對鏈結串列進行向右旋轉。本文教學如何精確操作指針,透過斷開特定節點並將原尾端重新連接至頭部,達成 O(1) 額外空間的結構變更。這是一篇掌握鏈結串列結構變更細節與循環連接技巧的實務筆記。
解析 LeetCode 困難題「分發糖果」。解題邏輯聚焦於將複雜的山形分佈拆解為左、右兩個獨立的山坡進行計算,最後取兩者最大值。本文展示如何將看似棘手的全局最優化問題分解為局部的線性掃描,達成優美且高效的解決方案。
跳跳遊戲系列第二題,尋找抵達終點的最小步數。本文解析如何運用動態規劃(DP)紀錄每個位置的最短步數,透過局部覆蓋範圍的持續更新,在 O(N) 或 O(N^2) 複雜度下收斂出最優路徑,是理解路徑優化問題的經典範例。
解析如何尋找最長的波動序列。本文分享三種不同的解題軌跡,探討如何動態追蹤數列的一上一下長度變化。核心概念在於靈活處理可跳過的元素,讓讀者能從不同複雜度的實作中掌握波動序列計數的精髓。
跳跳遊戲系列首題,判定是否能抵達數列終點。本文警告讀者避免落入動態規劃的複雜度陷阱,改採只需紀錄「最遠可抵達位置」的貪婪思維。這種線性掃描法能以極高的效率完成判定,是學習貪婪策略與範圍判斷的優質案例。
要求找出二元樹中每一層的最大值。本文運用廣度優先搜尋(BFS)走訪每一層節點,並在每層迭代中紀錄下最高數值。這展示了層序遍歷在處理樹狀結構層次屬性統計時的直覺應用。
要求在不直接調用 Python 內建 int() 的情況下實現大數相乘字串。本文分享如何自定義字元與數字的映射表,親手實作字串到數值的轉換與運算邏輯。這是一篇回歸計算機基礎運算原理,鍛鍊開發者處理原始字串解析能力的筆記。
計算蛋糕切割後的最大區域面積。本文指出問題核心在於分別找出橫向與縱向切割中的最大跨度。透過對切割座標進行排序並計算最大差值,最後相乘即可得出結果。這是一篇關於維度分解與排序應用實務的筆記。
針對卡車裝載問題,本文展示貪婪演算法(Greedy Algorithm)的應用。透過優先挑選單位容量最大的盒子,能在有限的卡車空間內達成裝載價值的最大化。這是一篇引導讀者理解如何透過局部最佳化推導出全域最佳解的基礎實作。