自己想的太过繁琐,直接保存最高点和最低点即可;
具体代码:class Solution {
public:
int maxAbsoluteSum(vector& nums) {
int maxn=INT_MIN;
int n=nums.size();
setse;
se.insert(0);
vectordp(n+1,0);
for(int i=1;i<=n;i++){
dp[i]=dp[i-1]+nums[i-1];
int maxnn=*(se.rbegin());
int minn=*se.begin();
if(dp[i]>0){
maxn=max(maxn,abs(dp[i]-minn));
}else{
maxn=max(maxn,abs(dp[i]-maxnn));
}
se.insert(dp[i]);
}
return maxn;
}
};```



