此答案仅获得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