MinAbsSum可变性的边情形

2024-04-18 17:19:42 发布

您现在位置:Python中文网/ 问答频道 /正文

这个答案只有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

Tags: 答案httpsapptargetlenreturnifas