Question:codility Lesson 15 MinAbsSumOfTwo
My Answer:
def solution(A):
lenA = len(A)
A.sort()
if A[0] >= 0:
return A[0] + A[0]
if A[-1] <= 0:
return abs(A[-1] + A[-1])
front = lenA - 1
back = 0
minabs = A[-1] + A[-1]
while back <= front:
temp = abs(A[back] + A[front])
if temp < minabs:
minabs = temp
if abs(A[back + 1] + A[front]) <= temp:
back += 1
elif abs(A[back] + A[front - 1]) <= temp:
front -= 1
else:
back += 1
front -= 1
return minabs
Codility Lesson 15 解题思路

本文介绍了一个解决 Codility Lesson 15 中 MinAbsSumOfTwo 问题的方法。该问题要求从给定数组中找出两个数,使得它们的绝对值之和最小。通过先对数组进行排序,然后采用双指针法从前向后逐步逼近,最终找到最优解。
347

被折叠的 条评论
为什么被折叠?



