原题链接:1749. 任意子数组和的绝对值的最大值
solution: 求任意一段区间数字的和,通常可以想到利用前缀和的方法求解,本题是求解区间和的最大值,因此可以利用最大前缀和减去最小前缀和既为答案
class Solution {
public:
int maxAbsoluteSum(vector<int>& nums) { //绝对值最大区间,既最大前缀和-最小前缀和
int n = nums.size();
vector<int> res(n+1, 0);
for(int i=1;i<=n;i++){ //求前缀和
res[i]=nums[i-1];
res[i]+=res[i-1];
}
sort(res.begin(),res.end());
return res[n]-res[0];
}
};