《剑指Offer》刷题笔记——面试题57. 和为s的两个数字

难度:简单

一、题目描述:

在这里插入图片描述

二、解题分析:

1、剑指解析

在这里插入图片描述

2、代码实现

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        if len(nums)<2:
            return []
        i = 0
        j = len(nums)-1
        #如果最小的两个和大于target或者最大的两个和小于target,那就肯定不存在满足条件的两个数字
        if nums[0]+nums[1]>target or nums[j]+nums[j-1]<target:
            return []
        while i<j:
            if nums[i]+nums[j]<target:
                i+=1
            elif nums[i]+nums[j]>target:
                j-=1
            else:
                return [nums[i],nums[j]]
        return []
发布了132 篇原创文章 · 获赞 154 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_34108714/article/details/104759016
今日推荐