专栏首页女程序员的日常_Lin今日算法题,请查收

今日算法题,请查收


两数之和 II - 输入有序数组

给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。

函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2

说明:

  • 返回的下标值(index1 和 index2)不是从零开始的
  • 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。

示例:

输入: numbers = [2, 7, 11, 15], target = 9

输出: [1,2]

解释: 2 与 7 之和等于目标数 9 。因此 index1 = 1, index2 = 2 。

题解:对撞指针法

/**
 * @param {number[]} numbers
 * @param {number} target
 * @return {number[]}
 */
var twoSum = function(numbers, target) {
    let front = 0,end = numbers.length-1;
    while(front< end){
        const frontNum = numbers[front];
        const endNum = numbers[end];
        if(frontNum + endNum > target){
            end--;
        }
        if(frontNum + endNum < target){
            front ++ ;
        }
        if( frontNum + endNum == target){
            return [front+1 , end+1]
        }
    }

};

你有更好的方法?留言我看看……


本文分享自微信公众号 - 女程序员的日常(gh_df41d619fb70),作者:凛

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 今日算法题-动态规划法

    思想:若要解决一个问题,我们需要解其不同部分,再根据子问题的解得出原问题的解。通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量;...

    用户3258338
  • 今日一题 - 请模拟实现一个Promise.all() 方法?

    Promise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。

    zz_jesse
  • 【12月27日线上沙龙】PPT请查收~

    【12月27 线上沙龙】 共探 DevOps 下的质量保障 【形式】:线上 【PPT下载地址(点击阅读原文也可前往获取)】:https://pan.baidu....

    WeTest质量开放平台团队
  • 今日头条算法原理(全)

    ▲3分钟了解今日头条推荐算法原理 今天,算法分发已经是信息平台、搜索引擎、浏览器、社交软件等几乎所有软件的标配,但同时,算法也开始面临质疑、挑战和误解。今日头条...

    前端教程
  • 今日头条算法原理详解(全)

    本次分享将主要介绍今日头条推荐系统概览以及内容分析、用户标签、评估分析,内容安全等原理。

    非著名程序员
  • 这有一份腾讯教育战“疫”日记,请您查收~

    —  END  — 我就知道你在看!

    腾讯智慧教育
  • 每日算法题:Day 13

    输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中...

    算法工程师之路
  • 每日算法题:Day 3

    用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。

    算法工程师之路
  • 每日算法题:Day 4

    大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39

    算法工程师之路
  • 每日算法题:Day 6

    思路: 我们大家都知道整数在计算机中是以二进制的形式来存储的,因此对于正数或者负数都是0或1的数字组成的。且由于int型为32位,因此我们可以逐一的对每一位进行...

    算法工程师之路
  • 每日算法题:Day 7

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位...

    算法工程师之路
  • 每日算法题:Day 8

    思路: 第一种思路,使用一个堆栈去保存所有的节点,然后再进行依次弹出后并连接起来即可!

    算法工程师之路
  • 每日算法题:Day 21

    输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 输出描述: 对应每个测试案例,...

    算法工程师之路
  • 每日算法题:Day 20

    一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。

    算法工程师之路
  • 每日算法题:Day 19

    思路: 首先要清楚这种看似简单的题目,使用直接遍历是可以,但一般不得分,由于题目给出了排序数组,对于排序数组来说,常用的搜索查找方式为二分查找(binary s...

    算法工程师之路
  • 每日算法题:Day 11

    输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序...

    算法工程师之路
  • 每日算法题:Day 9

    输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)

    算法工程师之路
  • 每日算法题:Day 10

    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵:1 2 3 4 5 6 7 8 9 10 11 12 13 14...

    算法工程师之路
  • 每日算法题:Day 12

    输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。

    算法工程师之路

扫码关注云+社区

领取腾讯云代金券