资讯专栏INFORMATION COLUMN

【刷算法】和为S的两个数字

Dr_Noooo / 2683人阅读

摘要:题目描述输入一个递增排序的数组和一个数字,在数组中查找两个数,是的他们的和正好是,如果有多对数字的和等于,输出两个数的乘积最小的。解题思路数组是递增的,且给的数字是固定的,那就可以用夹逼法。和碰头了说明该结束了。

题目描述

输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。

解题思路

数组是递增的,且给的数字S是固定的,那就可以用夹逼法。
两个指针left和right从数组的两端开始,要是left和right指向的数字之和大于S,说明right得向左移动一下,因为right的左边是比它小的数字;要是left的right指向的数字之和小于S,说明left得向 右边移动一下,因为left的右边是比它大的数字。left和right碰头了说明该结束了。

代码实现
function FindNumbersWithSum(array, sum)
{
    if(!array || array.length < 2 || sum === 0)
        return [];
    var left = 0;
    var right = array.length-1;
    var res = [];
    while(left !== right) {
        var curSum = array[left]+array[right];
        if(curSum === sum){
            res.push(array[left]);
            res.push( array[right]);
            break;
        }
        else if(curSum > sum)
            right--;
        else 
            left++
    }
    return res;
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/95644.html

相关文章

  • 算法】二叉树中和为某一值路径

    摘要:题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。思路二叉树的大多数问题可以使用递归来解决,本题亦如此。 题目描述 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 思路 二叉树的大多数问题可以使用...

    zxhaaa 评论0 收藏0
  • 小李飞刀:题第四弹!

    摘要:第二题罗马数字转整数难度简单罗马数字包含以下七种字符,,,,,和。字符数值例如,罗马数字写做,即为两个并列的。通常情况下,罗马数字中小的数字在大的数字的右边。给定一个罗马数字,将其转换成整数。 随便说点啥 TIME:2019-02-01昨晚其实刷了题来着,但是没有解出来,哭泣!但是,今天重新写了下,解出来咯~所以今天的题量要增加咯~我会加油的! 第一题 14. 最长公共前缀难度:简单 ...

    luffyZh 评论0 收藏0
  • leetcode494. Target Sum

    摘要:为了寻找合适的正负号赋值,我们其实可以将数组分为两个子集,其中一个子集中的数字都被赋予了正号,而另一个子集中的数字都被赋予了负号。如果二者的和不是一个偶数,就一定无法找到这样的正负号集合使得其结果为。 题目要求 You are given a list of non-negative integers, a1, a2, ..., an, and a target, S. Now yo...

    RobinTang 评论0 收藏0
  • leetCode算法-268(缺失数字

    摘要:给定一个包含中个数的序列,找出中没有出现在序列中的那个数。求合法开始之前我先说一下我的思路个有序数字累加和,数学里边是有公式的,我们重温一下推导过程。 给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。 示例 1: 输入: [3,0,1]输出: 2示例 2: 输入: [9,6,4,2,3,5,7,0,1]输出: 8 下面我...

    geekzhou 评论0 收藏0
  • 【前端来LeetCode】两数之和与两数相加

    摘要:给定表,存在函数,对任意给定的关键字值,代入函数后若能得到包含该关键字的记录在表中的地址,则称表为哈希表,函数为哈希函数。而中的对象就是基于哈希表结构,所以我们构造一个对象即可,是当前遍历到的值,是其与目标值的差。 大部分玩前端的小伙伴,在算法上都相对要薄弱些,毕竟调样式、调兼容就够掉头发的了,哪还有多余的头发再去折腾。 确实在前端中需要使用到算法的地方是比较少,但若要往高级方向发展,...

    BLUE 评论0 收藏0

发表评论

0条评论

Dr_Noooo

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<