博客
关于我
两数之和
阅读量: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/

    你可能感兴趣的文章
    OSPF技术连载2:OSPF工作原理、建立邻接关系、路由计算
    查看>>
    OSPF技术连载5:OSPF 基本配置,含思科、华为、Junifer三厂商配置
    查看>>
    OSPF技术连载6:OSPF 多区域,近7000字,非常详细!
    查看>>
    OSPF技术连载7:什么是OSPF带宽?OSPF带宽参考值多少?
    查看>>
    OSPF技术连载8:OSPF认证:明文认证、MD5认证和SHA-HMAC验证
    查看>>
    OSPF故障排除技巧
    查看>>
    spring配置文件中<context:property-placeholder />的使用
    查看>>
    OSPF有哪些优势?解决了RIP的什么问题?
    查看>>
    OSPF的七种类型LSA
    查看>>
    OSPF的安全性考虑:全面解析与最佳实践
    查看>>
    ospf综合实验2 2012/9/8
    查看>>
    OSPRay 开源项目教程
    查看>>
    OSS 访问图片资源报“No ‘Access-Control-Allow-Origin‘”的错误
    查看>>
    oss报UnknownHost,k8s设置hostAliases参数
    查看>>
    OS模块
    查看>>
    OS第2章 —— 进程
    查看>>
    OS第3章 —— 进程调度和死锁
    查看>>
    OS第5章
    查看>>
    OTA测试
    查看>>
    Outlook 2010 Inside Out
    查看>>