在這 30 天裡,我們將拆解各種常見的演算法題型,從 Two Pointers 到 Dynamic Programming,不僅提供解法,更會剖析其時間/空間複雜度。
你一定有想過為何跟另一位同學的程式都可以執行,我的卻顯得非常冗長且難以閱讀呢?這一切都跟演算法有緊密的關係。 演算法(Algorithm) 的核心是解決問題的...
這是演算法的靈魂,也是衡量工程師內功深淺的重要指標。 要判斷程式是否有效率則要考慮兩點 程式運行時間少 程式所占用的空間少 演算法的複雜度分為以下兩...
介紹雙指標的奧妙 題目連結: 11. Container With Most Water題目描述: 給定一個非負整數的陣列 height,陣列中的每個數字 he...
雙指標的進階題型 題目連結: 15. 3Sum 題目描述:給定一個包含n 個整數的陣列 nums,請找出所有不重複的三元組 (i, j, k),使得 i + j...
3 Sum的變形 題目連結: 16. 3Sum Closest 題目描述:給定一個長度為 n 的整數數組 nums 和一個整數目標,找出 nums 中的三個整數...
介紹二分搜尋法的應用 題目連結: 34. Find First and Last Position of Element in Sorted Array 題目描...
介紹另一種二分搜尋法的應用 題目連結: 162. Find Peak Element 題目描述:一個「峰值元素」是指其值嚴格大於其左右兩側相鄰元素的元素。給定一...
題目連結: 153. Find Minimum in Rotated Sorted Array 題目描述:一個原本升序排列的陣列 nums(元素唯一),在某個未...
題目連結: 33. Search in Rotated Sorted Array 題目描述:一個升序排列的陣列 nums(元素唯一)在某個未知點被旋轉了。例如...
昨天我們解決了「搜尋旋轉排序陣列」,今天我們要挑戰相似題。這兩個題目只有一個微小的差別,但這個差別卻足以讓昨天的程式碼完全失效。 題目連結: 81. Searc...