​LeetCode解法汇总167. 两数之和 II - 输入有序数组

news2024/12/22 6:25:57

 目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣


描述:

给你一个下标从 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] 。

示例 2:

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

示例 3:

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

提示:

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

解题思路:

* 解题思路:

* 双指针,左右指针,左指针指向第0位,右指针指向最后一位。

* 设置结束条件为left<right。

* 求numbers[left] + numbers[right];之和为value。

* 如果value == target,则符合条件。

* 如果value < target,则说明value小了,因此left向右移动一位,value>target时right向左移动一位。

* 因为本题是从1开始的,所以我们给结果中的两个位置各加1.

代码:

class Solution {
public:
    vector<int> twoSum(vector<int> &numbers, int target)
    {
        int left = 0;
        int right = numbers.size() - 1;
        vector<int> result;
        while (left < right)
        {
            int value = numbers[left] + numbers[right];
            if (value == target)
            {
                result.push_back(left+1);
                result.push_back(right+1);
                break;
            }
            else if (value < target)
            {
                left++;
            }
            else
            {
                right--;
            }
        }
        return result;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/737433.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NC68 跳台阶

public class Solution {public int jumpFloor(int target) {if(target < 1)return 1;elsereturn jumpFloor(target - 1) jumpFloor(target - 2); } }

日志全链路追踪之MDC

1.引言 Hi&#xff0c;大家好&#xff0c;我是有清 苏格拉底说过&#xff1a;日志打得好&#xff0c;排查没烦恼 我们日常的开发工作中&#xff0c;排查问题去看日志应该是家常便饭的事&#xff0c;日志可以帮助我们清楚的知道当前代码的走向以及链路数据&#xff0c;通常我们现…

JavaScript 使用链接跳转传递数组对象数据类型的方法

文章目录 首先了解一下正常传递基本数据类型JavaScript 跳转页面方法JavaScript 路由传递参数JavaScript 路由接收参数传递对象效果&#xff1a; 在前端有的时候会需要用链接进行传递参数&#xff0c;基本数据类型的传递还是比较简单的&#xff0c;但是如果要传递引用数据类型就…

Python实现PSO粒子群优化算法优化随机森林分类模型(RandomForestClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 PSO是粒子群优化算法&#xff08;Particle Swarm Optimization&#xff09;的英文缩写&#xff0c;是一…

WH5097D有源矩阵驱动的Mini LED背光应用方案

Miniled技术为lcd的全面升级版&#xff0c;Miniled的背光层在单位面积内可以容纳更多LED&#xff0c;从而大大提高背光源数量&#xff0c;因此可以进行区域亮度调节的设计&#xff0c;从而在个别区域实现关闭led从而达到完全的黑色&#xff0c;不仅减小了功耗&#xff0c;而且由…

【KingbaseES】如何查看表结构

SELECT column_name, data_type, is_nullable, column_default FROM information_schema.columns WHERE table_name test_szie;

梅雨季“霉”烦恼,防潮自救指南请收好

魔都的雨下个不停&#xff0c;天气也异常闷热&#xff0c;原来是上海已经入梅了。“雨连连、湿哒哒、闷兮兮”的梅雨季&#xff0c;湿漉漉的空气&#xff0c;感觉身体也跟着“发霉”。不想做梅雨季最“潮”人&#xff0c;赶紧码住这份抗“霉”攻略。 梅雨季最大的特点是空气湿度…

数据库DDL

目录 DDL数据库的操作 SQL表操作&#xff1a; 数据库的数据类型&#xff1a; 数值类型​编辑 字符串类型 日期时间类型 DDL表操作 - 修改​编辑 总结&#xff1a; DDL数据库的操作 演示&#xff1a; SQL表操作&#xff1a; 数据库的数据类型&#xff1a; 数值类型 字符串…

Person相关系数

衡量两个变量线性相关程度。先画散点图看是否为线性相关&#xff0c;相关系数才有用。 总体&#xff1a;要考察对象的全部个体 样本&#xff1a;从总体中所抽取的一部分个体 用样本的统计量估计总体的统计量 总体Person相关系数 协方差Cov(X,Y)反映X、Y的相关性 Person相关系…

zabbix 应用(二)

目录 一&#xff1a;部署 zabbix 代理服务器 1、准备环境 2、 设置 zabbix 的下载源&#xff0c;安装 zabbix-proxy 3、 部署数据库&#xff0c;要求 MySQL 5.7 或 Mariadb 10.5 及以上版本 4、 初始化数据库 5、创建数据库 指定字符集&#xff0c;创建 zabbix 数据库用户…

从零开始的知识图谱生活,构建一个百科知识图谱,完成基于Deepdive的知识抽取、基于ES的简单语义搜索、基于 REfO 的简单KBQA

项目设计集合&#xff08;人工智能方向&#xff09;&#xff1a;助力新人快速实战掌握技能、自主完成项目设计升级&#xff0c;提升自身的硬实力&#xff08;不仅限NLP、知识图谱、计算机视觉等领域&#xff09;&#xff1a;汇总有意义的项目设计集合&#xff0c;助力新人快速实…

华为云“All in ”大模型:释放人工智能巨能!看低代码开发平台引领未来

前言 截至目前&#xff0c;全球已发布数百个大模型&#xff0c;我国年内已发布80多个大模型&#xff0c;面向消费者端的应用百花齐放。我们认为&#xff0c;大模型在行业里多作贡献&#xff0c;才是正确的道路。 当下发展现状 今年以来&#xff0c;人工智能的发展因ChatGPT进入…

MAC |如何在mac上阅读caj文件?

背景&#xff1a;工作群中老板突然发了一个caj的论文过来&#xff0c;让大家阅读学习。 于是就开启了解决&#xff1a;在mac上阅读caj文件之旅。 首先&#xff0c;尝试了这篇文章的方法&#xff1a; 教你如何在Mac上打开CAJ格式的文件_普通网友的博客-CSDN博客 以失败告终。…

【sql注入-报错注入1】extractvalue()函数 报错注入

目录 extractvalue()报错注入 一、语法介绍&#xff1a; 二、报错原因 网络安全小圈子 &#xff08;***注&#xff1a;注意看版本要求&#xff09; extractvalue()报错注入 一、语法介绍&#xff1a; 版本&#xff1a; MySQL<5.0.x 语法&#xff1a; EXTRACTVALUE(…

地址解析协议 (ARP)

地址解析协议&#xff08;ARP&#xff09;是互联网协议&#xff08;IP&#xff09;套件的关键第 2 层协议&#xff0c;可将 IP 地址转换为媒体访问控制&#xff08;MAC&#xff09;地址&#xff08;IP – MAC&#xff09;&#xff0c;ARP 在实现网络连接方面发挥着不可或缺的作…

赛效:如何一键生成印章

1&#xff1a;在电脑上打开标小智印章生成器&#xff0c;点击输入框&#xff0c;在输入框里输入印章内容。 2&#xff1a;文本内容输入后&#xff0c;点击右侧的“生成按钮”。 3&#xff1a;在生成的印章模板里&#xff0c;挑一个满意的&#xff0c;鼠标放上去就可以看到下载按…

安装Nodejs、NPM、Vue脚手架详细教程

一、安装Nodejs 查看自己电脑是否安装nodejs node --version我这里已经下载过了&#xff0c;没有下载过的会提示该命令不存在 可以到官网下载一下 https://nodejs.org/en/download/ 不要安装在中文路径下 二、安装NPM 如果你安装了nodejs–默认会安装NPM. npm --version…

国内好用的CRM框架推荐和介绍

一、如何选择CRM管理系统的方法 选择适合自己的CRM管理系统是企业客户关系管理的重要决策之一&#xff0c;需要根据自身的需求和实际情况进行选择。下面介绍几个选择比较好的CRM管理系统的方法&#xff1a; 1. 确定功能需求&#xff1a;企业需要根据自身的业务特点和管理需求…

OpenHarmony之小熊派Bearpi-hm_micro_small刷机问题避坑

目录 1.概述2.注意事项3.发现问题4.解决问题 1.概述 最近大家都知道&#xff0c;华为出了一个中国的手机操作系统HarmonyOS,本人很是激动&#xff0c;因为中国终于有了自己的手机操作系统&#xff0c;而且我去了解了下&#xff0c;发现完全不同于Android和IOS操作系统&#xf…

集合面试题--LinkedList数组

目录 单向链表 介绍 时间复杂度分析 双向链表 时间复杂度分析 总结 ArrayList和LinkedList的区别是什么&#xff1f; 单向链表 介绍 时间复杂度分析 双向链表 时间复杂度分析 总结 ArrayList和LinkedList的区别是什么&#xff1f;