美文网首页
和为s的两个数字

和为s的两个数字

作者: 曾大稳丶 | 来源:发表于2022-05-24 09:55 被阅读0次

题目链接 :https://leetcode.cn/problems/he-wei-sde-liang-ge-shu-zi-lcof/

image.png

题目解析

  1. 采用HashMap

复杂度分析
空间复杂度: O(N)。
时间复杂度: O(N)。

  1. 由于本题是一个排序数组,可以采用双指针的方式进行探寻达到降低空间复杂度的目的。左右指针分别指向头尾,如果相加大于目标值就右指针往左移,如果相加小于目标值则左指针向右移。
public int[] twoSum(int[] nums, int target) {
    int i = 0, j = nums.length - 1;
    while(i < j) {
        int s = nums[i] + nums[j];
        if(s < target) i++;
        else if(s > target) j--;
        else return new int[] { nums[i], nums[j] };
    }
    return new int[0];
}

复杂度分析
空间复杂度: O(1)。
时间复杂度: O(N)。

相关文章

  • 和为S的两个数字

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

  • 和为S的两个数字

    题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,...

  • 和为S的两个数字

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

  • 和为S的两个数字

    题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,...

  • 和为S的两个数字

    题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输...

  • 和为S的两个数字

    题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,...

  • 和为S的两个数字

    时间限制:1秒 空间限制:32768K 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们...

  • 和为S的两个数字

    题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,...

  • 和为s的两个数字

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

  • 和为s的两个数字

    题目链接 :https://leetcode.cn/problems/he-wei-sde-liang-ge-sh...

网友评论

      本文标题:和为s的两个数字

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