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長度的i
- 對於範圍從i+1到A長度的j
- temp = A[i] + A[j]
- 如果temp < K,則res = res和temp中的最大值
- 對於範圍從i+1到A長度的j
- 返回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
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP