searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

和为s的两个数字-算法学习

2023-07-12 04:00:47
0
0

题目详情:
输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。


示例:
输入:nums = [2,7,11,15], target = 9
输出:[2,7] 或者 [7,2]

解题思路:
首先,定义两个指针 left 和 right,分别指向数组的最左端和最右端。

然后,我们计算指针所指元素的和 sum。如果 sum 等于 target,则找到了符合条件的一对数字,即 nums[left] 和 nums[right],将它们作为结果返回。

如果 sum 小于 target,说明当前的和太小了,我们需要增大和,为了达到这个目标,我们将 left 指针向右移动一位。

如果 sum 大于 target,说明当前的和太大了,我们需要减小和,为了达到这个目标,我们将 right 指针向左移动一位。

重复上述步骤,直到找到一对数字的和等于 target,或者指针相遇(即 left 大于等于 right),此时说明数组中不存在满足条件的数字对,返回一个空数组。

代码实现:
function twoSum(nums, target) {
    let left = 0;
    let right = nums.length - 1;

    while (left < right) {
        const sum = nums[left] + nums[right];

        if (sum === target) {
            return [nums[left], nums[right]];
        } else if (sum < target) {
            left++;
        } else {
            right--;
        }
    }

    return [];
}

// 示例输入
const nums = [2, 7, 11, 15];
const target = 9;

// 调用函数并输出结果
console.log(twoSum(nums, target));

0条评论
作者已关闭评论
t****m
98文章数
1粉丝数
t****m
98 文章 | 1 粉丝
t****m
98文章数
1粉丝数
t****m
98 文章 | 1 粉丝
原创

和为s的两个数字-算法学习

2023-07-12 04:00:47
0
0

题目详情:
输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。


示例:
输入:nums = [2,7,11,15], target = 9
输出:[2,7] 或者 [7,2]

解题思路:
首先,定义两个指针 left 和 right,分别指向数组的最左端和最右端。

然后,我们计算指针所指元素的和 sum。如果 sum 等于 target,则找到了符合条件的一对数字,即 nums[left] 和 nums[right],将它们作为结果返回。

如果 sum 小于 target,说明当前的和太小了,我们需要增大和,为了达到这个目标,我们将 left 指针向右移动一位。

如果 sum 大于 target,说明当前的和太大了,我们需要减小和,为了达到这个目标,我们将 right 指针向左移动一位。

重复上述步骤,直到找到一对数字的和等于 target,或者指针相遇(即 left 大于等于 right),此时说明数组中不存在满足条件的数字对,返回一个空数组。

代码实现:
function twoSum(nums, target) {
    let left = 0;
    let right = nums.length - 1;

    while (left < right) {
        const sum = nums[left] + nums[right];

        if (sum === target) {
            return [nums[left], nums[right]];
        } else if (sum < target) {
            left++;
        } else {
            right--;
        }
    }

    return [];
}

// 示例输入
const nums = [2, 7, 11, 15];
const target = 9;

// 调用函数并输出结果
console.log(twoSum(nums, target));

文章来自个人专栏
js
57 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0