假设我们有一个整数数组A,并给出了另一个整数K。我们必须找到最大S,使得存在i <j且A [i] + A [j] = S且S <K。如果不存在i,则j满足该等式,然后返回-1。因此,例如,如果A = [34,23,1,24,75,33,54,8]且K = 60,则输出将为58,因为我们可以使用34和24求和58,这小于60
为了解决这个问题,我们将遵循以下步骤-
res =-1
如果A只有一个元素,则返回-1
当我在0到A的长度范围内
temp = A [i] + A [j]
如果temp <K,则res = res和temp的最大值
对于范围i + 1至A长度的j
返回资源
让我们看下面的实现以更好地理解-
class Solution(object): def twoSumLessThanK(self, A, K): ans = -1 if len(A)==1: return -1 for i in range(len(A)): for j in range(i+1,len(A)): temp = A[i]+ A[j] if temp<K: ans = max(ans,temp) return ans ob1 = Solution()print(ob1.twoSumLessThanK([34,23,1,24,75,33,54,8],60))
[34,23,1,24,75,33,54,8] 60
输出结果
58