★ 算法OJ题 ★ 力扣 LCR179 - 和为 s 的两个数字

news/2024/9/19 4:46:35/ 标签: 算法, leetcode, 职场和发展, c++, 开发语言, 数据结构

Ciallo~(∠・ω< )⌒☆ ~ 今天,小诗歌剧将和大家一起做一道双指针算法题--和为 s 的两个数字~

目录

一  题目

二  算法解析

三  编写算法


一  题目

LCR 179. 查找总价格为目标值的两个商品 - 力扣(LeetCode)

二  算法解析

解法⼀:暴力解法 O(N ^ 2)

算法思路: 两层 for 循环列出所有两个数字的组合,判断是否等于⽬标值。(会超时)

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {int n = nums.size();for (int i = 0; i < n; i++) // 第⼀层循环从前往后列举第⼀个数{ for (int j = i + 1; j < n; j++) // 第⼆层循环从 i 位置之后列举第⼆个数{ if (nums[i] + nums[j] == target) // 两个数的和等于⽬标值,说明我们已经找到结果了return { nums[i], nums[j] };}}return { -1, -1 };}
};

解法⼆:利用单调性,使用双指针 - 对撞指针解决问题

算法思路: 注意到本题是升序的数组,因此可以⽤对撞指针优化时间复杂度

三  编写算法

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


http://www.ppmy.cn/news/1520742.html

相关文章

NCH DrawPad Pro for Mac/Win:强大的图像编辑处理软件

NCH DrawPad Pro for Mac/Win是一款功能全面的图像编辑和设计软件&#xff0c;专为Mac和Windows用户设计。它不仅适用于专业设计师&#xff0c;也深受业余爱好者和创意工作者的喜爱。DrawPad Pro凭借其丰富的绘图工具、强大的编辑功能和便捷的模板库&#xff0c;为用户提供了卓…

集成电路学习:什么是LCD液晶显示器

一、LCD&#xff1a;液晶显示器 LCD&#xff0c;全称Liquid Crystal Display&#xff0c;即液晶显示器&#xff0c;是一种平面超薄的显示设备。它由一定数量的彩色或黑白像素组成&#xff0c;放置于光源或者反射面前方。LCD的主要原理是以电流刺激液晶分子产生点、线、面配合背…

五,Spring Boot中的 Spring initializr 的使用

五&#xff0c;Spring Boot中的 Spring initializr 的使用 文章目录 五&#xff0c;Spring Boot中的 Spring initializr 的使用1. 方式1&#xff1a;IDEA创建2. 方式2&#xff1a;start.spring.io 创建3. 注意事项和细节4. 最后&#xff1a; 需要&#xff1a;使用 Spring initi…

ReentrantLock可重入锁又是怎么回事?

前言&#xff1a;有关Synchronized锁的知识可以参考我上篇写的内容synchronized必知必会的知识点 一&#xff1a;ReentrantLock的实现原理 锁的实现原理基本是为了达到一个目的:让所有的线程都能看到某种标记。Synchronized通过在对象头中设置标记实现了这一目的&#xff0c;是…

MFC工控项目实例之十添加系统测试对话框

承接专栏《MFC工控项目实例之九选择下拉菜单主界面文本框显示菜单名》 参考前期我的博客文章《MFC3d立体按钮制作》 这里只给出相关代码 1、在SysTest.h文件中添加代码 #include "ShadeButtonST.h" #include "BtnST.h" class CSysTest : public CDialog {…

H5手机端调起支付宝app支付

1.调起APP页面如下 步骤 1.让后端对接一下以下文档&#xff08;手机网站支付通过alipays协议唤起支付宝APP&#xff09; https://opendocs.alipay.com/open/203/107091?pathHash45006f4f&refapi 2.后端接口会返回一个form提交表单 html&#xff1a;在页面中定义一个d…

C++学习笔记(3)

101、从结构体到类 对面向对象编程来说&#xff0c;一切都是对象&#xff0c;对象用类来描述。 类把对象的数据和操作数据的方法作为一个整体考虑。 定义类的语法&#xff1a; class 类名 { public: 成员一的数据类型 成员名一; 成员二的数据类型 成员名二; 成员三的数据类型 成…

安防监控视频平台LntonAIServer视频智能分析平台新增视频质量诊断功能

随着安防行业的快速发展&#xff0c;视频监控系统已经成为维护公共安全和个人隐私的重要工具。然而&#xff0c;由于各种因素的影响&#xff0c;视频流的质量可能会受到影响&#xff0c;从而导致监控效果不佳。为了解决这一问题&#xff0c;LntonAIServer推出了全新的视频质量诊…

「邀您参会」9月20日 中国可观测日成都站

随着首届中国可观测日上海站的圆满落幕&#xff0c;中国站第二站将于 9 月 20 日在成都盛大开启。在此&#xff0c;我们诚挚邀请您参与这场专注于监控观测领域的技术交流盛会&#xff0c;与行业精英共同探讨可观测性技术的前沿趋势和实践应用。 活动亮点 1、技术交流盛宴&…

什么是rest参数?

Rest参数是JavaScript中的一种特殊参数类型&#xff0c;也称为剩余参数或可变参数&#xff0c;它允许开发者定义一个函数&#xff0c;以便接收不定数量的参数。Rest参数的使用是通过在参数列表末尾添加...符号来实现的&#xff0c;这些额外的参数会被收集到一个数组中&#xff…

Docker 容器编排之 Docker Compose

目录 1 Docker Compose 概述 1.1 主要功能 1.2 工作原理 1.3 Docker Compose 中的管理层 2 Docker Compose 的常用命令参数 2.1 服务管理 2.1.1 docker-compose up &#xff1a; 2.1.2 docker-compose down &#xff1a; 2.1.3 docker-compose start &#xff1a; 2.1.4 docker…

【Qt的TS文件转换器】利用Python实现自动化TS文件转换

TS 文件转换器 在开发多语言Qt应用时&#xff0c;管理和更新翻译文件是一项繁琐但必要的任务。这个工具旨在自动化Qt Linguist TS文件的转换过程&#xff0c;支持不同语言之间的转换&#xff0c;特别关注中文变体和其他语言。 目录 &#x1f30e;背景⭐特性&#x1f512;前提条…

go常用代码

连接阿波罗&#xff1a; 默认properties类型 package mainimport ("fmt""github.com/apolloconfig/agollo/v4""github.com/apolloconfig/agollo/v4/env/config" )func main() {c : &config.AppConfig{AppID: "2222",Cl…

在WordPress中使用AI的实用方法:专家级

在WordPress中使用AI的实用方法&#xff1a;专家级 随着人工智能&#xff08;AI&#xff09;技术的迅速发展&#xff0c;越来越多的网站管理员开始在WordPress中利用AI工具来提升网站的功能和用户体验。除了基础和进阶的应用之外&#xff0c;还有一些更高级的方法可以帮助你解…

c# json使用

安装包 用NuGet安装包&#xff1a;Newtonsoft.Json 对象转为Json字符串 public class Person {public string Name { get; set; }public int Age { get; set; } }Person person new Person { Name "John Doe", Age 30 }; string json2 JsonConvert.SerializeO…

免费批量Excel文件合并、拆分软件

软件介绍 下载地址&#xff1a;https://pan.quark.cn/s/ae860a4e2ccb 1.多个XLS或XLSX格式EXCEL文件合并&#xff0c;合并后可使用数据透视表进行相关操作。 2.自动合并多个EXCEL文件的第一个工作表&#xff0c;并汇总成一张表&#xff0c;可根据所有列标题需要指定需要的列。 …

LeetCode491 非递减子序列

前言 题目&#xff1a; 491. 非递减子序列 文档&#xff1a; 代码随想录——非递减子序列 编程语言&#xff1a; C 解题状态&#xff1a; 好难… 思路 注意不能对原数组进行排序。 代码 class Solution { private:vector<vector<int>> res;vector<int> pa…

2、Typescript学习——Typescript中的数组操作

1、Typescript怎样往原数组中添加多个元素 在TypeScript中&#xff0c;你可以使用数组的push方法来添加单个元素&#xff0c;或者使用扩展运算符...来添加多个元素。 let numbers: number[] [1, 2, 3]; numbers.push(4); // 添加单个元素 添加多个元素示例&#xff1a; le…

Scrapy添加代理IP池:自动化爬虫的秘密武器

在网络爬虫的世界里&#xff0c;IP地址的频繁更换是防止被目标网站封禁的有效手段。通过在Scrapy中添加代理IP池&#xff0c;你可以轻松实现自动化的IP切换&#xff0c;提高数据抓取的效率和稳定性。今天&#xff0c;我们就来详细讲解一下如何在Scrapy中添加代理IP池&#xff0…

004、架构_详解(重点)

GoldenDB 分布式数据库框架 DN和RDB增加了备节点;引入新模块CM,且GTM、MDS、PM、CM都增加备节点;MDS、PM、CM、RDB被统一在了管理节点之中;GTM和MDS间多了一条连线,因为GTM的切换由MDS把控;初步系统架构mysqld:一般称为DB节点,负责单个节点的数据处理; dbproxy:一般…