MinAbsSum Codility的边缘包

时间:2019-07-27 23:22:52

标签: python dynamic-programming

此答案仅获得90分。测试失败,任何人都可以想到这会失败吗?

https://app.codility.com/demo/results/trainingPSAQCJ-K96/

def solution(A):
    if len(A) == 0:
        return 0
    if len(A) == 1:
        return A[0]
    AS = sorted(map(abs, A), reverse=True)
    sum_val = sum(AS)
    c_sum = 0
    closest = sum_val
    target = sum_val // 2
    for a in AS:
        diff = target - c_sum - a
        if 0 <= diff < closest:
            c_sum += a
            closest = diff
    return sum_val - 2 * c_sum

0 个答案:

没有答案