【发布时间】:2017-07-25 16:05:09
【问题描述】:
我有一个 List[Double] 具有以下值:
{-1.2200000000000006, -1.3200000000000003, -1.0099999999999998, 22.22, 11.11,
-31.310000000000002, -0.9799999999999986,-4, -5, 3, 2, 2.959999999999999}`
我要找到连续负数的最大总和。
所以从原始列表中分离出连续的否定和肯定列表
{
{-1.2200000000000006, -1.3200000000000003, -1.0099999999999998},
{22.22, 11.11},
{-31.310000000000002, -0.9799999999999986,-4, -5},
{3, 2, 2.959999999999999}
}
然后去掉连续的正数
{
{-1.2200000000000006, -1.3200000000000003, -1.0099999999999998},
{-31.310000000000002, -0.9799999999999986,-4, -5}
}
然后求和
{-3.5500000000000007, -41.29}
然后改为绝对值
{3.5500000000000007, 41.29}
然后找到 max = 41.29
【问题讨论】:
-
你的问题有点模糊。 1 - 你想对连续的负数求和还是对所有连续的负数求和? 2 - 负数的总和也是负数,所以
32.29不可能是正确的。 3 - 最大负数是最接近零的一个。你想要最大值还是最小值? -
@jwvh 我已编辑该消息以更好地解释它。它是连续负数的总和,而不是我认为现在发布的解决方案的负数 PAIRS 的总和。
-
您可以使用此答案stackoverflow.com/questions/21800041/… 中的
multiSpan。然后对子列表求和,取最小值,那么绝对值就是你想要的答案