• LeetCode(27)两数之和 II - 输入有序数组【双指针】【中等】


    在这里插入图片描述

    链接: 两数之和 II - 输入有序数组

    1.题目

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

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

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

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

    示例 1:

    输入:numbers = [2,7,11,15], target = 9
    输出:[1,2]
    解释:2 与 7 之和等于目标数 9 。因此 index1 = 1, index2 = 2 。返回 [1, 2] 。
    
    • 1
    • 2
    • 3

    示例 2:

    输入:numbers = [2,3,4], target = 6
    输出:[1,3]
    解释:2 与 4 之和等于目标数 6 。因此 index1 = 1, index2 = 3 。返回 [1, 3] 。
    
    • 1
    • 2
    • 3

    示例 3:

    输入:numbers = [-1,0], target = -1
    输出:[1,2]
    解释:-1 与 0 之和等于目标数 -1 。因此 index1 = 1, index2 = 2 。返回 [1, 2] 。
    
    • 1
    • 2
    • 3

    提示:

    • 2 <= numbers.length <= 3 * 10^4
    • -1000 <= numbers[i] <= 1000
    • numbers非递减顺序 排列
    • -1000 <= target <= 1000
    • 仅存在一个有效答案

    2.答案

    class Solution {
        public int[] twoSum(int[] numbers, int target) {
            int[] result = new int[2];
            for (int i = 0; i < numbers.length; i++) {
                for (int j = numbers.length - 1; j > i; j--) {
                    if (numbers[i] + numbers[j] == target) {
                        result[0] = i + 1;
                        result[1] = j + 1;
                        return result;
                    }
                }
            }
            return result;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    3.提交结果截图

    在这里插入图片描述

    整理完毕,完结撒花~ 🌻

  • 相关阅读:
    从零开始搭建仿抖音短视频APP-后端开发消息业务模块(1)
    Make命令与MakeFile的编写学习
    java类的学习
    【MySQL】MySQL数据库的初阶使用
    六、Kafka-Eagle监控
    HTTP和HTTPS
    Deepin下vsftp服务安装配置
    CMAK Kafka可视化管理工具
    Git教程——git使用
    Caché for UNIX®, Linux及macOS的安装及配置
  • 原文地址:https://blog.csdn.net/qq_33204709/article/details/134461447