力扣刷题-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};
    }
};

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

相关推荐
Zero不爱吃饭7 分钟前
将有序数组转换为二叉搜索树
数据结构·算法
这个世界的真神14 分钟前
【每日算法】 洛谷 P12341 【[蓝桥杯 2025 省 A/Python B 第二场] 消消乐】 2025.10.26
python·算法·蓝桥杯
l1t21 分钟前
利用DeepSeek改写递归CTE SQL语句为Python程序及优化
数据库·人工智能·python·sql·算法·性能优化·deepseek
workflower2 小时前
微软PM的来历
java·开发语言·算法·microsoft·django·结对编程
JianminZheng5 小时前
MTPA算法原理及仿真验证
算法
im_AMBER6 小时前
Leetcode 38
笔记·学习·算法·leetcode
Miraitowa_cheems6 小时前
LeetCode算法日记 - Day 82: 环形子数组的最大和
java·数据结构·算法·leetcode·决策树·线性回归·深度优先
Code_Shark7 小时前
AtCoder Beginner Contest 426 题解
数据结构·c++·算法·数学建模·青少年编程
仰泳的熊猫7 小时前
LeetCode:698. 划分为k个相等的子集
数据结构·c++·算法·leetcode
豐儀麟阁贵7 小时前
4.5数组排序算法
java·开发语言·数据结构·算法·排序算法