TypeScript算法每日一题:两数之和(167)
作者:前端小王hs
阿里云社区博客专家/清华大学出版社签约作者✍/CSDN百万访问博主/B站千粉前端up主
题库:力扣
题目序号: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] 。
解题思路:
这里需要注意的几个条件是
①下标从1开始👉得到的结果要加1
②非递减顺序排列👉递增
③不可以重复使用相同元素👉下标不能一样
④必须只使用常量级的额外空间👉传入的是大小为n的数组,如果我们使用了大小为n或与n成正比的数组去存储计算的中间结果,那么就没有使用常量级
由于这是一个递增的数组,那么基础的解题思路是可以采用暴力枚举的思路(点击跳转暴力枚举解法)
另外,还可以采用双向指针的思路,也就是从数组的第一项和最后一项去双向奔赴,那么需要注意的是,由于数组是非递减顺序排列的,所以如果得到的结果小于tagget,那么应该是左边的下标+1,反之则是右边下标-1,这也很好理解,例如示例1的数组[2,7,11,15],第一次是2+15=17,大于目标数9,那么右边的数就应该从15退到11,也就是right--
解题代码:
function twoSum(numbers: number[], target: number): [number, number] | null { let left = 0;// 注意,由于数组从0开始,所以最后一项是length-1let right = numbers.length - 1; while (left < right) { const sum = numbers[left] + numbers[right]; // 判断结果,如果相等直接returnif (sum === target) { return [left + 1, right + 1];// 当和小于目标数时 } else if (sum < target) { left++;// 当和大于目标数时} else { right--; } } return null;
}
解题过程示例:
示例1的数组[2,7,11,15],第一次是2+15=17,大于目标数9,那么右边的数就应该从15退到11,也就是right--,直至2+7=9,此时得到下标数组[0,1],然后下标都加1满足题意
相关文章:
TypeScript算法每日一题:两数之和(167)
作者:前端小王hs 阿里云社区博客专家/清华大学出版社签约作者✍/CSDN百万访问博主/B站千粉前端up主 题库:力扣 题目序号:167(简单) 题目: 给你一个下标从1开始的整数数组 numbers ,该数组已按非…...
用docker搭建的Vulfocus镜像管理界面没有镜像可以拉取解决办法
ps:截止到今天2023.4.2,kali和vps的docker拉取的vulfocus镜像会有版本的区别,虽然都是拉取的最新版,vps上镜像为3个月以前,kali上为16个月以前,所以在修改 views.py 文件时,可能会发现文件内容不…...
CSPM.pdf
PDF转图片 归档:...
多个短视频剪辑成一个视频:四川京之华锦信息技术公司
多个短视频剪辑成一个视频:创作中的艺术与技术 在数字时代,短视频以其短小精悍、内容丰富的特点,迅速成为社交媒体上的热门内容形式。然而,有时单一的短视频难以完全表达创作者的意图或满足观众的观赏需求。因此,将多…...
算法第三天力扣第69题:X的平方根
69. x 的平方根 (可点击下面链接或复制网址进行做题) https://leetcode.cn/problems/sqrtx/https://leetcode.cn/problems/sqrtx/ 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被…...
异常处理。
异常 是指程序运行中出现了错误。 捕获异常: 对bug进行提醒,使整个程序继续运行。 捕获所有异常: try:#可能出错的代码 except:如果出现异常执行的代码 可以输出异常的类型: try:a1bhuishprint(ab) except Exception as i:…...
MySQL—函数(介绍)—字符串函数(基础)
一、引言 提到函数,在SQL分类中DQL语句中有一个聚合函数,如COUNT()、SUM()、MAX()等等。这些都是一些常见的聚合函数,而聚合函数只是函数的一种,接下来会详细的学习和介绍一下函数的应用场景和以及 mysql 当中文件的函数有哪些。 …...
CTF本地靶场搭建——静态flag题型的创建
静态flag题型的创建 首先这里要说的是静态flag和动态flag。 在CTF(Capture The Flag)比赛中,静态flag的使用通常与特定的赛制或题目类型关联,而不是直接与题型绑定。静态flag意味着这些flag是预先设定好的,不会随比…...
基于Django的博客系统之用HayStack连接elasticsearch增加搜索功能(五)
上一篇:搭建基于Django的博客系统数据库迁移从Sqlite3到MySQL(四) 下一篇:基于Django的博客系统之增加类别导航栏(六) 功能概述 添加搜索框用于搜索博客。 需求详细描述 1. 添加搜索框用于搜索博客 描…...
开源VS闭源:大模型发展路径之争,你站哪一派?
文章目录 引言一、数据隐私1.1开源大模型的数据隐私1.2 闭源大模型的数据隐私1.3 综合考量 二、商业应用2.1 开源大模型的商业应用2.2 闭源大模型的商业应用2.3 商业应用的综合考量 三、社区参与3.1 开源大模型的社区参与3.2 闭源大模型的社区参与3.3 综合考量 结论 引言 在人…...
Python | Leetcode Python题解之第115题不同的子序列
题目: 题解: class Solution:def numDistinct(self, s: str, t: str) -> int:m, n len(s), len(t)if m < n:return 0dp [[0] * (n 1) for _ in range(m 1)]for i in range(m 1):dp[i][n] 1for i in range(m - 1, -1, -1):for j in range(n …...
STM32高级控制定时器应用之检测输入PWM周期和占空比
目录 概述 1 PWM 输入模式 1.1 原理介绍 1.2 应用实例 1.3 示例时序图 2 使用STM32Cube配置工程 2.1 软件环境 2.2 配置参数 2.3 生成项目文件 3 功能实现 3.1 PWM占空比函数 3.2 输入捕捉回调函数 4 功能测试 4.1 测试软件框架结构 4.2 实验实现 4.2.1 测试实…...
[AI Google] 三种新方法利用 Gemini 提高 Google Workspace 的生产力
Workspace 侧边栏中的 Gemini 现在将使用 Gemini 1.5 Pro,新的 Gemini for Workspace 功能即将登陆 Gmail 移动应用,等等。 Gemini for Google Workspace 帮助个人和企业更好地利用 Google 应用——从在 Gmail 中撰写邮件到在 Sheets 中组织项目计划。过…...
【U-Net验证】逐元素乘积将特征投射到极高维隐式特征空间的能力
写在前面:本博客仅作记录学习之用,部分图片来自网络,如需使用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言网络结构编码结构解码结构代码 实验实验设置w/o-ReLU的性能比较with-ReLU的性能比…...
快团团大团长帮卖如何导出单个团购的订单?免费教程教你怎么做!
一、小程序端如何导出单个团购的订单? 进入团购页面,在订单管理——订单导出中,点击订单数据表格,可导出到邮箱,或通过在浏览器中查看下载链接 二、电脑端如何导出单个团购的订单? 1、如何自定义选择订单信…...
services层和controller层
services层 我的理解,services层是编写逻辑代码语句最多的一个层,非常重要,在实际的项目中,负责调用Dao层中的mybatis,在我的项目中它调用的是这两个文件 举例代码如下 package com.example.sfdeliverysystem.servic…...
Pycharm编辑器下自定义模块导入报错:no module named问题
相信很多使用pycharm 社区版编写python 程序的初学者都会遇到这样一个看似简单但是一时半刻找不到解决头绪的问题: 在同个目录下导入自己编写的模块到主程序的过程中,直接import的时候会报错:ModuleNotFoundError。 通过各种方法尝试以后还是…...
C#使用GDI对一个矩形进行任意角度旋转
C#对一个矩形进行旋转GDI绘图,可以指定任意角度进行旋转 我们可以认为一张图片Image,本质就是一个矩形Rectangle,旋转矩形也就是旋转图片 在画图密封类 System.Drawing.Graphics中, 矩形旋转的两个关键方法 //设置旋转的中心点 public v…...
打印机的ip不同且连不上
打印机的ip不同且连不上 1.问题分析2.修改网段3.验证网络 1.问题分析 主要是打印机的网段和电脑不在同一个网段 2.修改网段 3.验证网络...
关于linux程序的查看、前台运行、后台运行、杀死的管理操作。
前言 在Linux中, 程序(program)是放在磁盘上的程序,是不会执行的。 进程(process)是程序被触发,从而加载到内存中的,会被CPU随机执行。 Linux中,有非常多的进程在实时运…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
SpringAI实战:ChatModel智能对话全解
一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM࿰…...
免费批量Markdown转Word工具
免费批量Markdown转Word工具 一款简单易用的批量Markdown文档转换工具,支持将多个Markdown文件一键转换为Word文档。完全免费,无需安装,解压即用! 官方网站 访问官方展示页面了解更多信息:http://mutou888.com/pro…...
以太网PHY布局布线指南
1. 简介 对于以太网布局布线遵循以下准则很重要,因为这将有助于减少信号发射,最大程度地减少噪声,确保器件作用,最大程度地减少泄漏并提高信号质量。 2. PHY设计准则 2.1 DRC错误检查 首先检查DRC规则是否设置正确,然…...
WEB3全栈开发——面试专业技能点P8DevOps / 区块链部署
一、Hardhat / Foundry 进行合约部署 概念介绍 Hardhat 和 Foundry 都是以太坊智能合约开发的工具套件,支持合约的编译、测试和部署。 它们允许开发者在本地或测试网络快速开发智能合约,并部署到链上(测试网或主网)。 部署过程…...
数据库管理与高可用-MySQL故障排查与生产环境优化
目录 #1.1MySQL单案例故障排查 1.1.1MySQL常见的故障排查 1.1.2MySQL主从故障排查 #2.1MySQL优化 2.1.1硬件方面的优化 2.1.2进程方面的优化 #3.1MySQL存储引擎 3.1.1 MyISAM存储引擎 3.1.2 InnoDB存储引擎 1.1MySQL单案例故障排查 1.1.1MySQL常见的故障排查 (1&…...
如何处理React中表单的双向数据绑定?
在前端开发中,双向数据绑定(Two-way Data Binding)是指视图(View)与数据模型(Model)之间保持同步:当模型发生变化时,视图会自动更新;当视图(用户输…...
BERT, GPT, Transformer之间的关系
1. Transformer 是什么?简单介绍 1.1 通俗理解 想象你是一个翻译员,要把一句话从中文翻译成英文。你需要同时看句子里的每个词,理解它们之间的关系。Transformer就像一个超级翻译助手,它用“自注意力机制”(Attentio…...
Fractal Generative Models论文阅读笔记与代码分析
何恺明分型模型这篇文章在二月底上传到arXiv预出版网站到现在已经过了三个月,当时我也听说这篇文章时感觉是大有可为,但是几个月不知道忙啥了,可能错过很多机会,但是亡羊补牢嘛,而且截至目前,该文章应该也还…...
