Python 中两个小于 K 的和

pythonserver side programmingprogramming更新于 2025/10/26 16:12:17

假设我们有一个整数数组 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,而 58 小于 60。

为了解决这个问题,我们将遵循以下步骤 −

  • res = - 1
  • 如果 A 只有一个元素,则返回 -1
  • 对于 i,范围为 0 到 A 的长度
    • 对于 j,范围为 i + 1 到 A 的长度
      • temp = A[i] + A[j]
      • 如果 temp < K,则 res = res 和 temp 的最大值
  • 返回 res

示例 (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

相关文章


有用资源