# 题目描述
给你一个整数数组 nums 。一个子数组 [numsl, numsl+1, ..., numsr-1, numsr] 的 和的绝对值 为 abs(numsl + numsl+1 + ... + numsr-1 + numsr)
请你找出 nums 中 和的绝对值 最大的任意子数组(可能为空),并返回该 最大值 。
# 测试用例
用例1
- 输入:
nums = [1,-3,2,3,-4] - 输出:
5 - 解释:子数组 
[2,3]和的绝对值最大,为abs(2+3) = abs(5) = 5。 
用例2
输入:nums = [2,-5,1,-4,3,-2]
输出:8
解释:子数组 [-5,1,-4] 和的绝对值最大,为 abs(-5+1-4) = abs(-8) = 8
# 思路
绝对值 —— 那就分成两个部分
- 最大子数组和
 - 最小子数组和 —— 反过来不就是最大了么
 - 两者求
Max即可 
# 代码实现
/**
 * @param {number[]} nums
 * @return {number}
 */
var maxAbsoluteSum = function(nums) {
    let res = 0, fMax = 0, fMin = 0;
    for(const x of nums){
        fMax = Math.max(fMax, 0) + x;
        fMin = Math.min(fMin, 0) + x;
        res = Math.max(res, fMax, -fMin);
    }
    return res;
};
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15