Python中的两个总和少于K

假设我们有一个整数数组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

    • 返回资源

    示例(Python)

    让我们看下面的实现以更好地理解-

    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