当前位置: 首页 > news >正文

leetcode: Two Sum II - Input Array is Sorted

leetcode: Two Sum II - Input Array is Sorted

  • 1. 题目
  • 2. 解答
  • 3. 总结

1. 题目

Given a 1-indexed array of integers numbers that is already sorted in 
non-decreasing order, find two numbers such that they add up to a specific target 
number. Let these two numbers be numbers[index1] and numbers[index2] where 1 <=
index1 < index2 <= numbers.length.
Return the indices of the two numbers, index1 and index2, added by one as an 
integer array [index1, index2] of length 2.
The tests are generated such that there is exactly one solution. You may not use 
the same element twice.
Your solution must use only constant extra space.

Example 1:

Input: numbers = [2,7,11,15], target = 9
Output: [1,2]
Explanation: The sum of 2 and 7 is 9. Therefore, index1 = 1, index2 = 2. We return [1, 2].

Example 2:

Input: numbers = [2,3,4], target = 6
Output: [1,3]
Explanation: The sum of 2 and 4 is 6. Therefore index1 = 1, index2 = 3. We return [1, 3].

Example 3:

Input: numbers = [-1,0], target = -1
Output: [1,2]
Explanation: The sum of -1 and 0 is -1. Therefore index1 = 1, index2 = 2. We return [1, 2].

Constraints:

  • 2 <= numbers.length <= 3 * 104
  • -1000 <= numbers[i] <= 1000
  • numbers is sorted in non-decreasing order.
  • -1000 <= target <= 1000
  • The tests are generated such that there is exactly one solution.

2. 解答

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

   双指针解法,可以理解为一个“元解法"。它基于排序的数组进行。利用大、小关系做一些确定性结论,从而缩小范围。
  注意“Given a 1-indexed array”,因此返回结果要在0-indexed的基础上+1。

3. 总结

  部分解法或思想需要以常识或者直觉的方式记忆在脑中,我这边称之为"元解法"。就好比数学中的乘法口诀表的存在。
  对应题干上异常的说明,要划出来。在方案写完之后,对应要点,是否都已在代码的考虑之内。

相关文章:

leetcode: Two Sum II - Input Array is Sorted

leetcode: Two Sum II - Input Array is Sorted1. 题目2. 解答3. 总结1. 题目 Given a 1-indexed array of integers numbers that is already sorted in non-decreasing order, find two numbers such that they add up to a specific target number. Let these two number…...

STL——list

一、list介绍及使用 1. list文档介绍 &#xff08;1&#xff09;list是可以在常数范围内&#xff0c;在任意位置进行插入、删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。 &#xff08;2&#xff09;list的底层是带头结点的双向循环链表&#xff0c;其中每个元素…...

实战打靶集锦-004-My-Cmsms

**写在前面&#xff1a;**记录一次艰难曲折的打靶经历。 目录1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查4.1 WEB服务探查4.1.1 浏览器访问4.1.2 目录枚举4.1.3 控制台探查4.1.4 其他目录探查4.2 阶段小结5. 公共EXP搜索5.1 CMS搜索5.2 Apache搜索5.3 PHP搜索5.4 MySQL搜索5…...

c++代码实现我的世界(14)

c代码实现我的世界14|生成地貌兼工作台1前言的前言~前言生成地貌函数结构体struct dimao根据比例生成地貌工作台函数准备的东西写在最后前言的前言~ 实在对不起大家&#xff0c;有挺长时间没更新了。 前言 今天我们将写生成地形的函数与工作台前传的代码&#xff1b; 注&…...

RMQ--区间最值问题(在更)

RMQ&#xff08;Range Minimum/Maximum Query&#xff09;RMQ解决的问题ST算法 O(nlogn)线段树例题数列区间最大值最敏捷的机器人天才的记忆Frequent values总结&#xff08;ST和线段树对比&#xff09;RMQ解决的问题 RMQ是一个解决多个区间最值查询的算法,即区间最值查询&…...

一篇文章搞懂Cookie

目录 1 什么是Cookie 2 创建Cookie 3 浏览器查看Cookie 3.1 浏览器查看Cookie的第一种方式 3.2 浏览器查看Cookie的第二种方式 4 获取Cookie 5 修改Cookie 6 Cookie编码与解码 6.1 创建带中文Cookie 6.2 读取带中文Cookie 6.3 获取中文Cookie请求效果 6.4 解决创建和…...

深入解读.NET MAUI音乐播放器项目(二):播放内核

播放控制服务 IMusicControlService: 播放控制类&#xff0c;用于当前平台播放器对象的操作&#xff0c;对当前所播放曲目的暂停/播放&#xff0c;下一首/上一首&#xff0c;快进快退&#xff08;寻迹&#xff09;&#xff0c;随机、单曲模式等功能的控制。 播放控制类包含一…...

4.SpringWeb

一、创建项目LomBok:辅助开发工具&#xff0c;减少代码编写Spring Web:带上Spring MVC,可以做Web开发了Thymleaf: Web开发末班引擎&#xff08;不常用&#xff09;创建好&#xff0c;如下&#xff1a;static/ 放置静态资源的根目录templates/ 放置模板文件的根目录 二、资源配置…...

C++中的枚举与位域

枚举在传统 C中&#xff0c;枚举类型并非类型安全&#xff0c;枚举类型会被视作整数&#xff0c;则会让两种完全不同的枚举类型可以进行直接的比较&#xff08;虽然编译器给出了检查&#xff0c;但并非所有&#xff09;&#xff0c;甚至同一个命名空间中的不同枚举类型的枚举值…...

第19章 MongoDB Limit与Skip方法教程

第19章 MongoDB Limit与Skip方法教程 MongoDB Limit() 方法 如果仁兄需要在MongoDB中读取指定数量的数据记录&#xff0c;可以使用MongoDB的Limit方法&#xff0c;limit()方法接受一个数字参数&#xff0c;该参数指定从MongoDB中读取的记录条数。 语法 limit()方法基本语法请…...

进程间通信——消息队列

多线程 进程间通信——消息队列 消息队列——发送 测试代码 #include <sys/types.h> #include <sys/msg.h> #include <sys/ipc.h>#include <stdlib.h> #include <stdio.h> #include <string.h>#define MAX_BUF_SIZE 255struct msgtype {…...

OpenMMLab 实战营打卡 - 第 7 课

OpenMMLab MMSegmentation内容概要MMSegmentation统一超参MMSegmentation 的项目结构分割模型的模块化设计分割模型的配置文件主干网络的配置ResNet v1c主解码头的配置辅助解码头的配置数据集配置数据处理流水线常用训练策略参考资料内容概要 • MMSegmentation 项目概述 • M…...

MAC Boook打印长图

有时老师给留的作业是一张长图&#xff0c;直接打印或者通过把图放入word打印都不能实现把长页分成多页进行打印。通过网上找到思路可以通过EXCEL实现将长图分成多页打印。 测试版本 macos&#xff1a;ventura 13.1 office 365 注&#xff1a;同样适用windows版本的excel 第…...

web3:区块链共识机制系列-POS(Proof of Stake)股权证明算法

web3相关学习一并收录至该博客&#xff1a;web3学习博客目录大全 前情衔接&#xff1a;web3:区块链常见的几大共识机制及优缺点 目录前言算法公式与原理算法公式运作原理以Peer Coin为例缺陷优点缺点特点分类发展历程casper协议1.什么是无成本利益关系问题2.引入casper协议解决…...

Linux fork()系统调用流程解析

1. fork()函数介绍&#xff08;百度百科&#xff09; fork系统调用用于创建一个新进程&#xff0c;称为子进程&#xff0c;它与进程&#xff08;称为系统调用fork的进程&#xff09;同时运行&#xff0c;此进程称为父进程。创建新的子进程后&#xff0c;两个进程将执行fork&…...

自定义软件帮助文档(qt assistant实现)

网上搜了一下&#xff0c;软件的帮助文档&#xff0c;三个都可以&#xff1a;https://github.com/zealdocs/zeal&#xff0c;https://zealdocs.org/&#xff0c;看看这个博客说的 https://blog.csdn.net/libaineu2004/article/details/125028913&#xff0c;这个也是开源的&…...

ESP32设备驱动-GPIO外部中断

GPIO外部中断 文章目录 GPIO外部中断1、GPIO中断介绍2、GPIO中断使用步骤3、软件准备4、硬件准备5、代码实现在前面的文章 ESP32设备驱动-GPIO数字输入与输出中介绍如何对GPIO进行控制操作。本文将在该基础上使用GPIO中断进一步优化按键输入。即演示如何使用GPIO中断。 1、GPI…...

【安全】nginx反向代理+负载均衡上传webshel

Nginx负载均衡下上传webshell 什么是反向代理&#xff1f; 正向代理就是代替客户端进行各种服务的访问以及获取&#xff1b;那么反向代理自然就是代替服务器进行事务处理&#xff0c;就是此时的代理服务器负责将用户的各项请求做一个汇总、分类&#xff0c;将其分发到不同的服务…...

华为OD机试 - 单词接龙(Python)| 真题,思路,知识点

单词接龙 题目 单词接龙的规则是: 可用于接龙的单词,首字母必须要与前一个单词的尾字母相同; 当存在多个首字母相同的单词时,取长度最长的单词; 如果长度也相等,则取字典序最小的单词; 已经参与接龙的单词不能重复使用; 现给定一组全部由小写字母组成的单词数组, 并指…...

[ 系统安全篇 ] window 命令禁用用户及解禁方法

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…...

面壁智能开源端侧多模态大模型MiniCPM-V 4.6,性能登顶同尺寸榜首,降低开发门槛

【导语&#xff1a;5月13日&#xff0c;面壁智能联合清华大学与OpenBMB开源社区&#xff0c;发布并开源新一代端侧多模态大模型MiniCPM-V 4.6。该模型以轻量级参数实现性能与效率突破&#xff0c;在评测中超越竞品&#xff0c;还降低了运行内存需求和计算成本&#xff0c;支持多…...

如何利用Deep SORT实现稳定高效的多目标追踪

如何利用Deep SORT实现稳定高效的多目标追踪 【免费下载链接】deep_sort Simple Online Realtime Tracking with a Deep Association Metric 项目地址: https://gitcode.com/gh_mirrors/de/deep_sort 在计算机视觉的实际应用中&#xff0c;多目标追踪一直是一个技术难点…...

第一份工作选大厂还是创业公司?5年后的差距令人深思

对于刚刚走出校门的软件测试工程师而言&#xff0c;第一份工作的选择&#xff0c;如同一场没有回头路的开局落子。它不仅仅关乎起薪的高低&#xff0c;更将深刻塑造你的技术视野、职业习惯和未来五年的成长曲线。五年&#xff0c;足以让一个初出茅庐的新人成长为独当一面的技术…...

大语言模型越狱攻击:真实世界提示词生态与防御策略分析

1. 项目概述&#xff1a;一次对“越狱”提示词的田野调查如果你在过去一年里深度使用过ChatGPT、Claude或者国内的文心一言、通义千问这类大语言模型&#xff0c;大概率遇到过这样的情况&#xff1a;你问了一个稍微敏感点的问题&#xff0c;比如“如何制作一个恶作剧软件”&…...

Cursor Pro功能解锁:3步实现免费无限制使用AI编辑器完整指南

Cursor Pro功能解锁&#xff1a;3步实现免费无限制使用AI编辑器完整指南 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached yo…...

PyQt6 GUI开发实战:构建现代化桌面应用的架构设计指南

PyQt6 GUI开发实战&#xff1a;构建现代化桌面应用的架构设计指南 【免费下载链接】PyQt-Chinese-tutorial PyQt6中文教程 项目地址: https://gitcode.com/gh_mirrors/py/PyQt-Chinese-tutorial 在当今软件开发领域&#xff0c;桌面应用依然占据着重要地位&#xff0c;特…...

调幅无线传数据:避开这些坑,你的7kHz方波才能传得更远更稳

调幅无线传数据&#xff1a;避开这些坑&#xff0c;你的7kHz方波才能传得更远更稳 在业余无线电和嵌入式通信领域&#xff0c;调幅&#xff08;AM&#xff09;无线传输一直是低成本解决方案的热门选择。但许多工程师在尝试用7kHz方波调制高频载波时&#xff0c;总会遇到信号失真…...

搞懂VMware三种网络模式:从NAT断网到桥接、仅主机的实战选择指南

VMware虚拟网络模式深度解析&#xff1a;从原理到场景化实战 当你在深夜赶项目时&#xff0c;虚拟机突然无法联网——这种经历对于开发者而言无异于噩梦。我曾亲眼见过团队新人在演示前夜因NAT模式配置问题崩溃&#xff0c;也见证过安全工程师因选错网络模式导致测试环境暴露。…...

从Hello-World到Nginx:5个真实案例详解如何让Docker容器在后台稳定运行

从Hello-World到Nginx&#xff1a;5个真实案例详解如何让Docker容器在后台稳定运行 当你在终端输入docker run后&#xff0c;容器却像一阵风一样消失无踪——这种"闪退"现象往往是Docker新手遭遇的第一个认知颠覆点。不同于传统虚拟机&#xff0c;容器本质上是隔离的…...

从NOIP真题到日常刷题:手把手教你用C++分离数字并统计(以‘数字统计’题为例)

从竞赛真题到实战技巧&#xff1a;C数字分离与统计的深度解析 在信息学竞赛的入门阶段&#xff0c;很多初学者面对"数字统计"这类题目时&#xff0c;往往陷入两个极端&#xff1a;要么死记硬背标准答案&#xff0c;要么被看似复杂的循环结构吓退。实际上&#xff0c;…...