1749. Maximum Absolute Sum of Any Subarray

ss
Feb 7, 2021

--

這題完全不可惜, 我整個方向錯亂, 導致一直往二維dp想過去

這題能解我覺得蠻鬼的

首先, 我們只需要維護兩種數, 一個是正數 另一個是負數

我們在遍歷每個數時, 負數會負責記錄小於零的case, 正數就是大於零

然後在每次循環, 我們就是歷史絕對值最大值跟當前正負數做比較

就結束了 非常amazing

class Solution {
public:
int maxAbsoluteSum(vector<int>& nums) {
int min_value = 0;
int max_value = 0;
int res = 0;
for(auto&n : nums){
min_value = min(0, min_value + n);
max_value = max(0, max_value + n);
res = max({max_value, -min_value, res});
}
return res;

}
};

--

--

ss
ss

No responses yet