两数之和 II(LeetCode)

题目

给你一个下标从 1 开始的整数数组 ,该数组已按非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 的两个数。

如果设这两个数分别是 ,则

以长度为 的整数数组 形式返回这两个整数的下标 和**。

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

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

解题

python 复制代码
def two_sum(numbers, target):
    left = 0
    right = len(numbers) - 1

    while left < right:
        current_sum = numbers[left] + numbers[right]
        if current_sum == target:
            return [left + 1, right + 1]  # 下标从1开始
        elif current_sum < target:
            left += 1
        else:
            right -= 1


# 测试例子
numbers = [2, 7, 11, 15]
target = 9
result = two_sum(numbers, target)
print("满足条件的下标:", result)

满足条件的下标: [1, 2]

相关推荐
Daily Mirror5 分钟前
Day44 简单 CNN 实战
python
zyx没烦恼8 分钟前
YAML模块
开发语言·python
智航GIS12 分钟前
4.2 集合(Set)
开发语言·python
小徐Chao努力17 分钟前
【Langchain4j-Java AI开发】07-RAG 检索增强生成
java·人工智能·python
小熊熊知识库39 分钟前
AI架构详解以及免费AI如何薅
人工智能·python·ai使用
hakesashou43 分钟前
python变量如何加入到文件路径
python
虾..1 小时前
Linux 简单日志程序
linux·运维·算法
梦弦181 小时前
Django:Python高效Web开发利器
python·django
Trent19851 小时前
影楼精修-眼镜祛反光算法详解
图像处理·人工智能·算法·计算机视觉·aigc
蓝色汪洋1 小时前
经典修路问题
开发语言·c++·算法