美文网首页
3. 有序数组中求和为给定值的两个数

3. 有序数组中求和为给定值的两个数

作者: 面向全麦面包编程 | 来源:发表于2020-03-03 11:01 被阅读0次

描述

这个题目说的是,给你一个整数数组,并且这个数组是按递增排序的,你要找到数组中的两个整数,它们的和等于给定的目标值,然后返回它们的下标。题目假设给你的数组总是有且只有一个解,而且同一个元素不能使用两次。另外,返回结果的下标要从 1 开始。
例如:[1, 2, 3, 6, 8, 11]
目标值是 10。那么,满足条件的两个整数是,2 和 8,它们的和是 10。所以你要返回它们在数组中的位置(索引+1)是 [2, 5]。

注意点

  • 数组已经有序
  • 没有必要使用双重循环
  • 双指针即可

Tips

  • 双指针"逼近"

代码引用

public class getTwoNumSumToGivenValue_Order {
    /**
     * T:O(n) S:(1)
     *
     * @param nums   给定有序数组
     * @param target  给定目标值
     */
    public int[] getTwoNumSumToGivenValue(int[] nums, int target) {
        int i = 0, j = nums.length - 1;
        while (i < j) {
            if (nums[i] + nums[j] > target) {
                j--;
            } else if (nums[i] + nums[j] < target) {
                i++;
            } else {
                return new int[]{i + 1, j + 1};
            }
        }
        return new int[]{-1, -1};
    }
}

相关文章

  • 3. 有序数组中求和为给定值的两个数

    描述 这个题目说的是,给你一个整数数组,并且这个数组是按递增排序的,你要找到数组中的两个整数,它们的和等于给定的目...

  • 数字和SUM

    两数和 题意是给出一个数组,输出和为k的两个数。数组为无序的 三数和 从给定的数组中找三个数,让它们的和为某个值。...

  • 查找

    查找 折半查找: 面试题: 给定一个有序的数组,如果往该数组中存储一个数,并保证这个数组还是有序的,那么这个元素的...

  • 快速查找数组中“和”为X的两个数

    快速判断在一个数组中,是否存在两个数字,让这两个数字之和等于一个给定的值 X。 以数组 arr[] = {11, ...

  • 2.求和为给定值的两个数(AlgoCasts)

    描述 这个题目说的是,给你一个整数数组和一个目标值,你要找到数组里两个整数, 它们的和等于目标值。然后返回这两个整...

  • 递归方法判断数组中的元素是不是有序

    问题:给定一个数组,请用递归方法判定数组中的元素是不是有序。分析:如果数组中只有一个元素,直接返回1表示有序

  • 数组-查找

    leetcode 4 两个数组找中位数给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出...

  • 插入排序

    Introduce 思想 将数组看做两个数组,一个有序,一个无序,从索引为1的位置开始遍历,当前值和有序数组中的元...

  • 寻求数组中的最大值算法挑战

    要求是:给定一个数组,数组中含有各个子数组,分别获取子数组中的最大值,组成一个新数组并返回这个数组的值 思路是 双...

  • 2019-02-09 Day 35

    1.#### 两数之和 II - 输入有序数组给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目...

网友评论

      本文标题:3. 有序数组中求和为给定值的两个数

      本文链接:https://www.haomeiwen.com/subject/nwqqlhtx.html