剑指 Offer 57. 和为s的两个数字
1.题目
2.官方的解决方案
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
# 什么问题:数组问题
# 什么特征:排序,查找等
# 一般有什么解决方法? 双指针、二分查找等
# 采用双指针法
# 跳过的都是没用的
i, j = 0, len(nums)-1
while i < j:
s = nums[i] + nums[j]
if s > target:
j -= 1
if s < target:
i += 1
if s == target:
return [nums[i], nums[j]]
- 时间复杂度: O ( n ) O(n) O(n)
- 空间复杂度: O ( 1 ) O(1) O(1)