力扣刷题-167.两数之和

给你一个下标从 1 开始的整数数组 numbers ,该数组已按非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1]numbers[index2] ,则 1 <= index1 < index2 <= numbers.length

以长度为 2 的整数数组 [index1, index2] 的形式返回这两个整数的下标 index1index2

你可以假设每个输入 只对应唯一的答案 ,而且你 不可以 重复使用相同的元素。

你所设计的解决方案必须只使用常量级的额外空间。

cpp 复制代码
class Solution {
public:
    vector<int> twoSum(vector<int>& numbers, int target) {
        int low = 0, high = numbers.size() - 1;
        while (low < high) {
            int sum = numbers[low] + numbers[high];
            if (sum == target) {
                return {low + 1, high + 1};
            } else if (sum < target) {
                ++low;
            } else {
                --high;
            }
        }
        return {-1, -1};
    }
};

利用双指针,逻辑比较简单,但是写出来费劲,左右相加依次递减遍历答案。

相关推荐
qq_417129253 分钟前
C++中的桥接模式变体
开发语言·c++·算法
YuTaoShao39 分钟前
【LeetCode 每日一题】3010. 将数组分成最小总代价的子数组 I——(解法二)排序
算法·leetcode·排序算法
XH华2 小时前
备战蓝桥杯,第七章:函数与递归
职场和发展·蓝桥杯
吴维炜2 小时前
「Python算法」计费引擎系统SKILL.md
python·算法·agent·skill.md·vb coding
Σίσυφος19003 小时前
PCL Point-to-Point ICP详解
人工智能·算法
玄〤4 小时前
Java 大数据量输入输出优化方案详解:从 Scanner 到手写快读(含漫画解析)
java·开发语言·笔记·算法
weixin_395448914 小时前
main.c_cursor_0202
前端·网络·算法
senijusene4 小时前
数据结构与算法:队列与树形结构详细总结
开发语言·数据结构·算法
杜家老五4 小时前
综合实力与专业服务深度解析 2026北京网站制作公司六大优选
数据结构·算法·线性回归·启发式算法·模拟退火算法
2301_765703144 小时前
C++与自动驾驶系统
开发语言·c++·算法