1.1、1. 两数之和
1.2、167. 两数之和 II - 输入有序数组
class Solution:
def twoSum(self
, numbers
: List
[int], target
: int) -> List
[int]:
i
= 0
j
= len(numbers
)-1
while i
< j
:
s
= numbers
[i
] + numbers
[j
]
if s
== target
:
return [i
+1, j
+1]
elif s
< target
:
i
+= 1
else:
j
-= 1
return []
1.3、653. 两数之和 IV - 输入 BST
中序遍历+双指针
class Solution:
def __init__(self
) -> None:
self
.res
= []
def findTarget(self
, root
: TreeNode
, k
: int) -> bool:
if not root
:
return False
self
.preOrder
(root
)
i
= 0
j
= len(self
.res
)-1
while i
< j
:
s
= self
.res
[i
] + self
.res
[j
]
if s
== k
:
return True
elif s
< k
:
i
+= 1
else:
j
-= 1
return False
def preOrder(self
, root
: TreeNode
) -> None:
if root
.left
:
self
.preOrder
(root
.left
)
self
.res
.append
(root
.val
)
if root
.right
:
self
.preOrder
(root
.right
)
转载请注明原文地址: https://mac.8miu.com/read-507233.html