LeetCode 筆記 - 1658. Minimum Operations to Reduce X to Zero
尋找從兩端移除元素使總和等於 x 的最小步驟。本文分享一個逆向思考的小技巧:將問題轉化為尋找總和為「總數 - x」的最長連續子陣列。結合前綴和與雙指針技術,能讓這個看似複雜的兩端搜尋問題變得易於實作。
⚠️ 舊文提醒:本文發佈於約 4 年前,部分內容或指令可能已過時,請斟酌參考。
題目在此 1658. Minimum Operations to Reduce X to Zero
給定一個數列與目標 x,你可以從數列挑選最左邊或最右邊的元素讓 x 減,直到使 x 等於 0
請計算出最小步驟!
解題思維
這題從最左最右開始,很直覺的感覺可以用 Two Pointers 大法
如果直接計算左右的移除元素 = x,會發現其實有蠻多特殊情況要考慮
此時我們可以反過來找 移除後數列總和 = 原始總和 - x,會比較好實作一點
剩下就是使用了 Prefix Sum 來加速計算總和
程式碼
1 | class Solution: |