博客
关于我
两数之和
阅读量:408 次
发布时间:2019-03-05

本文共 646 字,大约阅读时间需要 2 分钟。

双指针数法

给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。我们可以通过双指针技术来解决这个问题。

问题描述:给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。数组中的每个元素只能使用一次。

算法思路:我们可以使用双指针技术来解决这个问题。具体步骤如下:

  • 初始化两个指针,分别指向数组的开头和末尾。
  • 如果两个指针指向元素的和等于目标数,则返回这两个元素的索引。
  • 如果两个指针指向元素的和大于目标数,则将末尾指针向左移动一位。
  • 如果两个指针指向元素的和小于目标数,则将开头指针向右移动一位。
  • 示例:输入:numbers = [2,7,11,15]目标数:9

    输出:[1,2]

    详细步骤:初始时,左指针指向索引0(元素2),右指针指向索引3(元素15)。

    • 2 + 15 = 17 > 9,右指针向左移动到索引2(元素11)。
    • 左指针继续向右移动到索引1(元素7)。
    • 7 + 11 = 18 > 9,右指针继续向左移动到索引1(元素7)。
    • 左指针和右指针现在都指向索引1,这意味着找到了两个数:7和7。但是由于数组中不能重复使用相同的元素,我们需要重新调整指针。

    最终,我们发现索引1(元素7)和索引2(元素11)满足条件,7 + 11 = 18 > 9。因此,我们需要继续寻找下一个可能的组合。

    通过上述步骤,我们最终找到索引1和索引2的元素,它们的和等于目标数。因此,返回索引数组 [1,2]。

    注:索引数组的索引是从1开始计算的,而不是从0开始。

    转载地址:http://gxwzz.baihongyu.com/

    你可能感兴趣的文章
    pip install goose-extractor // SyntaxError: Missing parentheses in call to 'print'
    查看>>
    pip install mysqlclient报错
    查看>>
    pip install 出现报asciii码错误的解决
    查看>>
    pip throws TypeError: parse() got an unexpected keyword argument ‘transport_encoding‘ 在尝试安装新软件包时
    查看>>
    pip 下载慢
    查看>>
    pip 升级报错AttributeError: ‘NoneType’ object has no attribute ‘bytes’
    查看>>
    pip 安装opencv-python卡死
    查看>>
    pip 安装出现异常
    查看>>
    Pip 安装失败:需要 SSL
    查看>>
    Pip 安装挂起
    查看>>
    pip 或 pip3 为 Python 3 安装包?
    查看>>
    pip 文件损坏导致 pip无法使用 报错 ImportError: cannot import name 'main' from 'pip._int
    查看>>
    pip 无法从 requirements.txt 安装软件包
    查看>>
    pip/pip3更换国内源
    查看>>
    pip3 install PyQt5 --user 失败
    查看>>
    pip3命令全解析:Python3包管理工具的详细使用指南
    查看>>
    pip3安装命令重复创建文件‘/tmp/pip-install-xxxxx/package‘失败
    查看>>
    PIPE 接口信号列表
    查看>>
    pipeline配置与管理Job企业级实战
    查看>>
    pipeline项目配置实战
    查看>>