【算法专题突破】双指针 - 和为s的两个数字(6)

目录 

1. 题目解析

2. 算法原理

3. 代码编写

写在最后:


1. 题目解析

题目链接:剑指 Offer 57. 和为s的两个数字 - 力扣(Leetcode)

 这道题题目就一句话但是也是有信息可以提取的,

最重要的就是开始的那句话,“递增序列”

然后在数组中找出两个和为s的数即可(而且是任意一对即可)

2. 算法原理

这道题很简单,如果用暴力枚举直接两层for循环搞定就行,

但是使用暴力解法的话,就没有利用到他是有序序列的这个特性了。

看到有序一般我们会想到用二分法,但是二分比较难写,

所以我就打算利用单调性使用双指针来解这道题:

我们用 left 指针指向左边,right 指针指向右边,然后开始操作:

sum 是 left + right 的值,

如果:sum < target ,就让 left 指针右移找更大的数

如果:sum > target ,就让 right 指针左移找更小的数

如果:sum == target ,返回结果即可。

3. 代码编写

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

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~

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

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

相关文章

【小吉测评】高效简洁的数据库管控平台—CloudQuery

文章目录 &#x1f384;CloudQuery是什么&#x1f6f8;CloudQuery支持的数据源类型&#x1f354;CloudQuery社区地址&#x1f33a;如何使用&#x1f6f8;参考官方文档&#x1f6f8;参考视频教程&#x1f388;点击免费下载&#x1f388;立即下载即可&#x1f388;使用服务器完成…

Android——数据存储(一)(二十一)

1. 数据存储 1.1 知识点 &#xff08;1&#xff09;掌握Android数据存储的分类&#xff1b; &#xff08;2&#xff09;可以使用SharedPreferences存储数据。 1.2 具体内容 对于我们数据的存储而言&#xff0c;Android一共提供了5个数据存储的方式&#xff1a;SharedPrefe…

【嵌入式数据库之sqlite3】

目录 一.数据库基本概念&#xff08;理解&#xff09; 1.数据 2.数据库 二.常用的数据的数据库&#xff08;了解&#xff09; 1.大型数据库 2.中型数据库 3.小型数据库 三.基于嵌入式的数据库&#xff08;了解&#xff09; 四.SQLite基础&#xff08;了解&#xff09;…

Camunda 7.x 系列【50】任务服务 TaskService

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 概述2. API2.1 保存或更新任务2.2 删除任务2.3 拾取任务2.4 完成任务2.5 加签2.6 转办2.…

任天堂开发全新独立VR设备,或为下一代主机?将提供混合现实体验

根据爆料人Nash Weedle在X平台上的发文&#xff0c;我们得知任天堂正在秘密开发一款全新的独立VR设备&#xff0c;该设备将拥有一块MicroLED屏幕&#xff0c;并且独立于任天堂传闻中的下一代主机。与此同时&#xff0c;谷歌也参与了这款VR产品的研发工作。 这一新的VR设备被设计…

DataTableResponseEntity

/// <summary>/// DataTable数据集合返回实体/// </summary>[Serializable]public sealed class DataTableResponseEntity : IResponse{private readonly DataTable sourceTable;private readonly int PageCount;private readonly int totalCount;private readonly…

Java反序列化漏洞复现(weblogic和s2)

文章目录 weblogic启动环境漏洞扫描漏洞复现 S2-045启动环境漏洞复现 前提条件&#xff1a; 1.安装docker docker pull medicean/vulapps:j_joomla_22.安装docker-compose docker run -d -p 8000:80 medicean/vulapps:j_joomla_23.下载vulhub weblogic 启动环境 到下面路径下…

SpringBoot的HandlerInterceptor拦截器使用方法

一、创建拦截器 通过实现HandlerInterceptor接口创建自己要使用的拦截器 import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.…

Vue中使用vue-router

Vue中使用vue-router 1. 安装vue-router2. 创建路由页面3. 创建router文件4. 挂载router5. 使用 1. 安装vue-router npm install vue-router3.6.5 --save2. 创建路由页面 HomeView.vue <template><div>home</div> </template><script>export …

Vue + Element UI 前端篇(十五):嵌套外部网页

Vue Element UI 实现权限管理系统 前端篇&#xff08;十五&#xff09;&#xff1a;嵌套外部网页 嵌套外部网页 在有些时候&#xff0c;我们需要在我们的内容栏主区域显示外部网页。如查看服务端提供的SQL监控页面&#xff0c;接口文档页面等。 这个时候就要求我们的导航菜…

让你的编程之路更加顺畅——推荐一款前端编程神器

引子&#xff1a;在当今的数字化时代&#xff0c;编程已经成为一种不可或缺的技能。而前端开发&#xff0c;作为整个应用程序的“门面”&#xff0c;更是需要开发人员具备优秀的网页设计和编程能力。今天&#xff0c;我要向大家推荐一款专门为前端开发者打造的APP&#xff0c;它…

指令系统(408)

一、拓展操作码指令格式 【2017 统考】某计算机按字节编址&#xff0c;指令字长固定且只有两种指令格式&#xff0c;其中三地址指令29条、二地址指令107条&#xff0c;每个地址字段6位&#xff0c;则指令字长至少应该是&#xff08; A&#xff09; A、24位 B、26位 …

Autosar诊断实战系列16-UDS19 06扩展数据配置及工程问题讨论

本文框架 前言1. 再聊19 06服务响应格式2. 扩展帧数据配置及工程问题讨论2.1 扩展帧数据配置2.1.1 添加扩展数据需要存储的内容2.1.2 DemExtendedDataRecordClass内容关联2.1.3 DemDTCAttributes关联扩展数据2.2 工程问题讨论2.2.1 没有故障情况下扩展数据如何回复?前言 在本…

C# 什么是继承和派生

C# 什么是继承和派生 在 C# 中&#xff0c;继承&#xff08;Inheritance&#xff09;是一种机制&#xff0c;它允许一个类&#xff08;子类&#xff09;从另一个类&#xff08;父类&#xff09;中继承属性和方法。这种关系使得子类可以重用父类的代码&#xff0c;同时可以在子…

微信小程序云开发-云函数发起https请求简易封装函数

一、前言 在日常的开发中&#xff0c;经常会遇到需要请求第三方API的情况&#xff0c;例如请求实名认证接口、IP转换地址接口等等。这些请求放在小程序前端的话&#xff0c;就需要把密钥放在客户端&#xff0c;在安全性上没这么高。 因此&#xff0c;一般是放在云函数端去访问…

Linux下的系统编程——进程间的通信(九)

一、进程间通信常用方式 IPC方式&#xff1a; Linux环境下&#xff0c;进程地址空间相互独立&#xff0c;每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到&#xff0c;所以进程和进程之间不能相互访问&#xff0c;要交换数据必须通过内核&am…

VIRTIO-BLK代码分析(4)VIRTIO设备中断的注入

VIRTIO设备中断包括vq中断和config中断。Vq中断用于通知Guest已完成数据的处理&#xff0c;虚拟机中可以完成IO请求。Vq中断的模拟是通过irqfd实现的&#xff0c;它将虚拟机中断与irqfd关联上&#xff08;KVM_SET_GSI_ROUTING和KVM_IRQFD&#xff09;&#xff0c;当虚拟机中访问…

绘制钻头芯厚变化图

import numpy as np import matplotlib.pyplot as plt posnp.array([0.05,0.5,0.97,3]) data_m1np.array([0.088,0.093,0.098,0.116]) data_m2data_m1-0.01 data_m3data_m1-0.02 fig plt.figure(figsize(5, 4)) plt.rcParams[xtick.direction] in # 将x周的刻度线方向设置向…

数据库 设计规范数据库设计样例

目录 5 数据库5.1 数据库命名规范5.2 数据库字段命名5.2.1 字段命名规范5.2.2 命名规范5.2.3 待优化命名示例5.2.4 字段类型规范5.2.5数据库中每个字段的规范描述 5.3表设计5.4 参考设计5.4.1 应用场景5.4.2 需求分析5.4.3 设计思路5.4.4 表结构设计5.4.5 缓存策略Q1 冗余设计和…

【HCIE】01.IGP高级特性

高级特性&#xff1a;一条命令解决一个问题 OSPF快速收敛机制 发生故障重新计算拓扑的过程叫做收敛&#xff0c;设备现在本身就是PRC算法和I-SPF算法 PRC&#xff08;针对叶子节点&#xff0c;叶子代表路由&#xff09; 不需要命令配置&#xff0c;就是ospf的特性&#xff…