首页 > 其他分享 >167. 两数之和 II - 输入有序数组

167. 两数之和 II - 输入有序数组

时间:2023-11-03 15:45:43浏览次数:25  
标签:index1 target int II numbers 数组 index2 167 两数

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

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

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

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

 
示例 1:

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

代码


class Solution {
public:
    vector<int> twoSum(vector<int>& numbers, int target) {
        const int len = numbers.size();
        int l = 0;
        int r = len - 1;
        while(l < r){
            int sum = numbers[l] + numbers[r];
            if(sum == target){
                return {l+1, r+1};
            }else if(sum < target){
                l++;
            }else{
                r--;
            }
        }
        return {-1, -1};
    }
};

标签:index1,target,int,II,numbers,数组,index2,167,两数
From: https://www.cnblogs.com/lihaoxiang/p/17807714.html

相关文章

  • 11月LeetCode每日一题: 117. 填充每个节点的下一个右侧节点指针 II
    题目描述:给定一个二叉树:structNode{intval;Node*left;Node*right;Node*next;}填充它的每个next指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将next指针设置为 NULL 。初始状态下,所有 next指针都被设置为 NULL 。 考察......
  • Yii 动态模型实现思路
    假设这么一个场景:有一个通过YiiActiveForm构建的表单,里面所有的字段都是虚拟的,比如说这个表单的字段来自于一个JSON或者说数据库的结果集,需要实现同一个模型,根据不同的传参,构建不同的表单项。问题:Yii的表单是通过模型来创建的,也就是说我有这个表单项,模型中必须有对应的......
  • [vue]精宏技术部试用期学习笔记 III
    精宏技术部试用期学习笔记(vue)父子通信什么是通信/为什么要通信通信即在不同组件之间传输数据当在复用组件时,需要传递不同数据达成不同的表现效果能够根据其他组件的行动,响应式的做出变化Props功能:让父组件信息传递到子组件code:假定index.vue已经通过rou......
  • python ASCII字符的实用程序 curses.ascii 库的安装使用
    pythonASCII字符的实用程序curses.ascii库的安装使用https://www.lfd.uci.edu/~gohlke/pythonlibs/下载对自己电脑配置的WHL文件,并安装,比如我用的是curses‑2.2+utf8‑cp27‑cp27m‑win_amd64.whlpipinstallcurses‑2.2+utf8‑cp27‑cp27m‑win_amd64.whlPython代码中......
  • ARC167 | 宿命
    ARC167A.题目明示,让每组的和尽可能平均就是平衡。那相当于\(a\)升序排序后,前\(2(n-m)\)个数首尾配对成组,其余数单独成组即可。题解有一个值得借鉴的技巧,补\(0\)使得\(a\)长度为\(2m\)。\(\color{green}{\checkmark}\)。B.记\(S=\prod\limits_{d|A^B}d\)。考虑素......
  • 【算法题】2909. 元素和最小的山形三元组 II
    题目:给你一个下标从0开始的整数数组nums。如果下标三元组(i,j,k)满足下述全部条件,则认为它是一个山形三元组:i<j<knums[i]<nums[j]且nums[k]<nums[j]请你找出nums中元素和最小的山形三元组,并返回其元素和。如果不存在满足条件的三元组,返回-1。示例1:......
  • LeetCode每日算法2—两数相加
    题目描述给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字0之外,这两个数都不会以0开头。示例输入:(2......
  • 面试必刷TOP101:16、删除有序链表中重复的元素-II
    一、题目二、题解importjava.util.*;publicclassSolution{publicListNodedeleteDuplicates(ListNodehead){//空链表if(head==null)returnnull;ListNoderes=newListNode(0);//在链表前加一个表头......
  • 1.两数之和
    题目概述:给定一个数组和target,要求我们在数组中找到两个数,使这两个数之和为target,返回这两个数在数组中的下标解题思路:由于数据范围较小,直接使用暴力做法。当然可以使用二分或哈希进行优化代码:classSolution{publicint[]twoSum(int[]nums,inttarget){int......
  • C++ | 每一个C++程序员都应该知道的RAII
    导读:RAII是C++中一种管理资源、避免资源泄漏的惯用法,利用栈的特点来实现。本文较为详细介绍了RAII的原理、使用方法和优点,并且通过实例讲解了RAII在C++STL中的应用,如智能指针和互斥锁等,在最后进行了编程实践。本文适合对C++编程有一定了解的开发者阅读。1.什么是RAIIRAII是R......